БОЖЕ, НАКОНЕЦ ТО, я посмотрел кучу видео, облазил сайты, всю ночь не спал, и наконец, я это сделал, спасибо огромнейшее автору за помощь, это было понятно и сверх полезно!
Все говорят спасибо, и я тоже хочю сказать. Благодаря автору я смог понять как работает механика 2д игр с видом сверху! +Познал побольше язык С#, за что я очень благодарен!
здаров, говоришь за C# шариш ? Я делаю игру и мне бы не помешал програмист, что то я и сам смогу напимать а так не отказался бы от напарника, все файлы игры и сюжет я тебе скину, ты в деле?
Это только мое имхо, но для 2D РПГ с видом сверху любое перемещение через Rigidbady - избыточно. RB куда больше нужно для управления в 2D платформере, где персонаж прыгает, падает, и т.д.. При перемещении же таким способом в игре с видом сверху придется специально ограничивать скорость персонажа, чтобы при передвижении по диагонали он не ускорялся. Но это лично по моему весьма скромному опыту разработки. Поправьте меня, если ошиблась, буду благодарна))) Так же у такого подхода к анимированию есть проблема - персонаж останавливаясь всегда поворачивается вниз моськой. Не порядок. А вот за сортировку слоев спасибо! Всю голову уже сломала над этой проблемой, как-то эта информация прошла мимо меня.
По поводу сортировки спрайтов: не проще ли использовать в настройках проекта кастомную сортировку по вертикали? И по поводу движения персонажа: стоит нормализовать вектор движения, иначе он будет двигаться быстрее по диагонали, так как вертикальная и горизонтальная скорости будут суммироваться. Спасибо за урок)
Да, сортировать по Y через настройки проще в каком-то смысле, тоже вполне себе нормальный способ. Но в этом варианте мне понравилось, что больше контроля над этой сортировкой. При желании, можно даже ввести ещё какие-то новые правила сортировки в тот же скрипт. Про нормализацию вектора да, тут действительно проглядел)
вот если бы рассмотрел бы диагональное перемещение и анимацию цены бы не было, а если бы рассмотрел бы положение спрайта по отношению поворота камеры. Ты стал бы моим кумиром :)
Неожиданно вылезло это видео. Я еще месяца два назад искал, как сортировать спрайты. Ибо в моём случае, кастомная сортировка дала результат не для всех объектов. Персонаж был либо под, либо над. Как будет время, проверю.
Привет, спасибо за урок, очень помог, есть вопрос, как сделать так чтоб idle анимация была для каждого направления, чтоб персонаже когда стоит, смотрел в ту сторону, куда последний раз шел. За ранее спасибо)
По поводу сортировки спрайтов: В общем и целом, для первого дерева работает на ура, но стоит добавить другие деревья с другими координатами y и придется либо с точностью до тысячных подбирать офсет, чтобы переход был такой же, как на первом деревце, либо менять офсет самого перса, но тогда он перестает хорошо взаимодействовать с первым деревом. Порочный круг)) Но за ролик спасибо, довольно информативно и без ненужной информации
Добрый день, появилась проблема, я создал анимацию работает направление вверх, влево, вправо, но конкретно в право не работает, он её попросту не видит, поэтому проигрывает анимацию влево, подскажите что делать
помогите, пожалуйста, вроде бы всё сделал по гайду, а почему то, при беге в стороны проигрывается тоько одна анимация либо вправо либо влево, и это зависит от того какую анимацию я поставлю в blend tree выше, как это можно исправить, чтобы было две анимации?
То что я искал год я нашёл у вас спасибо огромное, теперь мой герой заходил в восьми направлениях, правда почему-то поттупливает и переменная speed в аниматора не сбрасывается
Всем привет, подскажите как сделать движение перса по клеткам, пример как Shining Force или X com. Ну и соответственно карту под это дело, сам пока с юнити и шарпом = 0,0001% знаний!))
Привет, именно твой гайд помог мне оживить персонажа, но проблема в том, что мне нужно, чтобы он ещё умел ходить вверх и вниз. Не подскажешь как это сделать?
Почему управление считывается каждый кадр (update), а применяется в фиксированных кадрах (FixedUpdate)? разве не будет лучше все засунуть в FixedUpdate?
FixedUpdate использует фиксированное значение заданое самим юнити, а в Update срабатывает каждый кадр который обрабатывает компьютер. У всех ведь разные компьютеры и фпс следовательно у каждого разный, Time.deltaTime компенсирует эту разница чтобы персонаж у каждого двигался с одинаковой скоростью независимо от фпс
@@pablo17391 именно поэтому стоит использовать только FixedUpdate, и неважно скока там фпс выдает комп. Time.fixeddeltaTime специально создан для использования в FixedUpdate, а FixedUpdate существует для работы с физикой. Я же спрашивал совсем про другое: почему нажатие клавиш не считывают в FixedUpdate? По сути это бесполезные лишние вычисления каждый кадр брать данные и никак их не использовать.
@@pablo17391 Я вообще не понимаю почему в unity до сих пор стоит по умолчанию эта конченная система управления, есть же нормальное на ивентах NewInputSystem.
что делать если я поставил соллайдеры и на персонажа и на дерево, но все равно персонаж проходит на сквозь дерева, не могу понять почему так получается, уже и пробовал на дерево добавить rigitbody 2d, но все равно не получается, помогите
я очень извиняюсь, помогите пожалуйста я в отчаяние выдаёт вот такую ошибку Assets\scripts\control.cs(26,18): error CS1061: 'Animator' does not contain a definition for 'setFloat' and no accessible extension method 'setFloat' accepting a first argument of type 'Animator' could be found (are you missing a using directive or an assembly reference?) using System.Collections; using System.Collections.Generic; using UnityEngine; public class control : MonoBehaviour { public float speed; private Vector2 direction; private Rigidbody2D rb; public Animator animator;
Это Visual Studio code. Но я советую visual studio. Он должен был скачатся вместе с unity. Но между vs и vsc отличий вроде нет, кроме как интерфейс, в vsc он сделан так чтобы тебя ничего не отвлекало.
Помогите кто ни будь, после того как добавляю скрипт что перс проходил за объектом, при запуске я иду чуть выше середины и он уходит под фон, что делать ?
Может кто будет это читать и поможет мне, я использую тайлмап и следовательно не могу взять позишен для рендеринга (у всех тайлов он одинаковый, а это проблема), так вот, в чём вопрос, может кто знает как это обойти (с помощью кода) или же мне стоит отказаться от тайлмапа и просто размещать объекты на сцене (напрямую)?
пиздец то на 0.25 ОЧЕНЬ БЫСТО то на норм скорости моментами очень медленно, лучше пусть видео будет дольше чем снимать на телефон в 0.25 и смотреть еще раз в замедленном на телефоне
проблема такая: Unity в режиме редактора: в свойствах Animator( у игрока) есть контролер Player, а если переключить в режим игры, то контролер пропадает, приходится вставлять, только после этого появляется анимация. Что можно сделать?
@@rophop6373 ruclips.net/video/6THkCmSPf38/видео.html тут по твоему что? это не 3 д иначе пространство искажалось при передвижении. Конечно могу ошибаться. но реализацию ни где не видел
мне пишет ts\script\NewBehaviourScript.cs(9,13): error CS0246: The type or namespace name 'Rigidboady2D' could not be found (are you missing a using directive or an assembly reference?) как решить проблему мой скрипт: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class NewBehaviourScript : MonoBehaviour { public float speed; private Vector2 direction; private Rigidboady2D rb; void Start() { rb = GetComponent(); } void Update() { direction.x = Input.GetAxisRaw("Horizontal"); direction.y = Input.GetAxisRaw("Vertical"); } void FixedUpdaite() { rb.MovePosition(rb.position + direction * speed * Time.fixedDeltaTime); } }
@@mello_game6338 извини смог только сейчас using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerControler : MonoBehaviour { public float speed; private Vector2 direction; private Rigidbody2D rb; // Start is called before the first frame update void Start() { rb = GetComponent(); } // Update is called once per frame void Update() { direction.x = Input.GetAxisRaw("Horizontal"); direction.y = Input.GetAxisRaw("Vertical"); } void FixedUpdate() { rb.MovePosition(rb.position + direction * speed * Time.fixedDeltaTime); } }
Мы тут недавно выпустили игру в Гугл плей, будем рады любым вашим отзывам и фидбеку:
play.google.com/store/apps/details?id=com.Eastorski.LocktheFox
БОЖЕ, НАКОНЕЦ ТО, я посмотрел кучу видео, облазил сайты, всю ночь не спал, и наконец, я это сделал, спасибо огромнейшее автору за помощь, это было понятно и сверх полезно!
А ты игру создаёшь?
@@artemongraff да, создавал
@@ЭльдарРафиев-й7п мне хочется посмотреть, я уверен крутая
@@artemongraff я создавал, но забросил, были дела
Чееел, большущее тебе спасибо за такие уроки. Единственное что я смог найти по своим проблемам да ещё и понятным языком. Ещё раз спасибо!
Все говорят спасибо, и я тоже хочю сказать. Благодаря автору я смог понять как работает механика 2д игр с видом сверху! +Познал побольше язык С#, за что я очень благодарен!
здаров, говоришь за C# шариш ? Я делаю игру и мне бы не помешал програмист, что то я и сам смогу напимать а так не отказался бы от напарника, все файлы игры и сюжет я тебе скину, ты в деле?
Спасибо тебе! Пожалуйста, продолжай снимать такие видео!
спасибо, урок ахренительный, первый раз делал и всё понятно. Очень доходчиво объясняешь
Спасибо, весь день в тиктоке лежал, теперь я как-то нашел как называется такой вид управления игрой
почему у такого видео так мало лайков и просмотров, оно же шикарно!
Это только мое имхо, но для 2D РПГ с видом сверху любое перемещение через Rigidbady - избыточно. RB куда больше нужно для управления в 2D платформере, где персонаж прыгает, падает, и т.д.. При перемещении же таким способом в игре с видом сверху придется специально ограничивать скорость персонажа, чтобы при передвижении по диагонали он не ускорялся. Но это лично по моему весьма скромному опыту разработки. Поправьте меня, если ошиблась, буду благодарна)))
Так же у такого подхода к анимированию есть проблема - персонаж останавливаясь всегда поворачивается вниз моськой. Не порядок.
А вот за сортировку слоев спасибо! Всю голову уже сломала над этой проблемой, как-то эта информация прошла мимо меня.
Согласен с тем, что если речь идет про вид сверху rigidbody - избыточен, т.к. там и не нужна кинематика.
Можешь подсказать что делать если персонаж все время меняет позицию по оси Z?
Никогда не уходи!
Я не смог найти ничего про создание Vertical игр, и ты тут со своим роликом. Спасибо!
не знаю как тебя отблагодарить ты проосто лучший!!!💥
По поводу сортировки спрайтов: не проще ли использовать в настройках проекта кастомную сортировку по вертикали? И по поводу движения персонажа: стоит нормализовать вектор движения, иначе он будет двигаться быстрее по диагонали, так как вертикальная и горизонтальная скорости будут суммироваться. Спасибо за урок)
Да, сортировать по Y через настройки проще в каком-то смысле, тоже вполне себе нормальный способ. Но в этом варианте мне понравилось, что больше контроля над этой сортировкой. При желании, можно даже ввести ещё какие-то новые правила сортировки в тот же скрипт. Про нормализацию вектора да, тут действительно проглядел)
а как нормализовать этот вектор движения?
@@moloko_127 Vector2.Normalize()
Очень информативное видео, впервые познакомился с blend tree и подобной сортировкой спрайтов. Спасибо огромное
Автор, ты спаситель!
Огромное спасибо! Очень помог с кодом
вот если бы рассмотрел бы диагональное перемещение и анимацию цены бы не было, а если бы рассмотрел бы положение спрайта по отношению поворота камеры. Ты стал бы моим кумиром :)
Неожиданно вылезло это видео. Я еще месяца два назад искал, как сортировать спрайты. Ибо в моём случае, кастомная сортировка дала результат не для всех объектов. Персонаж был либо под, либо над. Как будет время, проверю.
чувак спасибо код понятен даже такому затупку как я
Как сделать так, чтобы при прекращении движения срабатывала анимация покоя ( в сторону которой двигался персонаж)?
метод input.getkeyup вам в помощь
А что делать если я хочу сделать холм на котором будут дома и на который мог бы залезать персонаж
Все сделал точно также, а персонаж не ходит, в чем может быть ошибка? Скрипт компилируется, но не реагирует на нажатия.
Привет, спасибо за урок, очень помог, есть вопрос, как сделать так чтоб idle анимация была для каждого направления, чтоб персонаже когда стоит, смотрел в ту сторону, куда последний раз шел. За ранее спасибо)
Нашел ответ?
А кажется понял я lesson не выставил и там где список написал порядок а это секунды походу))) Спасибо вам надо преподавать в универе
Как отразить анимацию ходьбы в другую сторону, если есть анимация только в право?
я кнш вовремя но там в скрипте с ходьбой на лево надо поставить скейл на -1
по х
По поводу сортировки спрайтов:
В общем и целом, для первого дерева работает на ура, но стоит добавить другие деревья с другими координатами y и придется либо с точностью до тысячных подбирать офсет, чтобы переход был такой же, как на первом деревце, либо менять офсет самого перса, но тогда он перестает хорошо взаимодействовать с первым деревом. Порочный круг)) Но за ролик спасибо, довольно информативно и без ненужной информации
можно сделать проще (кто плохо пока шарит скрипты). просто добавить текстуру кустов и сделать ее поверх всего = вуаля
@@valstbr8411можно сделать еще - зайти в настройки Юнити и выставить там автоматический сортинг спрайтов
спасибо за урок и приятный голос))
Добрый день, появилась проблема, я создал анимацию работает направление вверх, влево, вправо, но конкретно в право не работает, он её попросту не видит, поэтому проигрывает анимацию влево, подскажите что делать
помогите, пожалуйста, вроде бы всё сделал по гайду, а почему то, при беге в стороны проигрывается тоько одна анимация либо вправо либо влево, и это зависит от того какую анимацию я поставлю в blend tree выше, как это можно исправить, чтобы было две анимации?
я долго искал код для хождения и наконецто нашел ура
У меня проблема, когда сохраняю скрипт, то юнити мне пишет ошибку CS0117. Как её исправить?
То что я искал год я нашёл у вас спасибо огромное, теперь мой герой заходил в восьми направлениях, правда почему-то поттупливает и переменная speed в аниматора не сбрасывается
Подскажите пожалуйста вписал код как на видео, ошибок не выдет, скорость выставить могу, а персонаж не ходит( что делать?
скинь код в коменты
может помогу чем
Всем привет, подскажите как сделать движение перса по клеткам, пример как Shining Force или X com. Ну и соответственно карту под это дело, сам пока с юнити и шарпом = 0,0001% знаний!))
Спасибо, чувак!
Бяяяяяя большое тебе спасибо)!!!!
можно ли тут использовать постоянную фарадея умноженную на бесконечность таймдельтатайм?
привет, подскажите, на какой версии юньки это делали?
как инвертировать анимацию? у меня не ставится галочка
А ссылочку на ассет?)
А как двигать персонаж при помощи голосовых команд? Через микрофон
Спасибо, всё шикарно работает
Как тема в VS Code называется ?)
было бы здорово, если бы у тебя появилась группа в вк и/или беседа для начинающих программистов)
спасибо огромное!!!
Сделал все как в видео, но анимаций просто нет, что делать?
у меня анимации в игре не отображаются, но отабражаются на сцене, и ещё анимации под текстуры проваливаются
Что за мелодия играет на 4:40?
Привет, именно твой гайд помог мне оживить персонажа, но проблема в том, что мне нужно, чтобы он ещё умел ходить вверх и вниз. Не подскажешь как это сделать?
Что делать если после создание первого скрипта не появляется окошка с регулированием скорости?
Залетай ко мне на канал, там выходят уроки по Юнити с нуля
где можно найти такие же спрайти как на видео?
Гугл
Ты топ!!
Спасибо большое! А будет видео про это передвижение, только на андроид? Очень хотелось бы увидеть!
Господи, как всё быстро и не могу ни чего уловить. Думал что то пойму, но слишком быстро у вас идёт поток мыслей
как сделать что бы в приоритете движения было вверх и вниз, а не влево и вправо?
не работает сортировка спрайтов, с одним деревом работает на ура, добавляю второе, когда находишься выше дерева игрок пропадает
Почему управление считывается каждый кадр (update), а применяется в фиксированных кадрах (FixedUpdate)? разве не будет лучше все засунуть в FixedUpdate?
FixedUpdate использует фиксированное значение заданое самим юнити, а в Update срабатывает каждый кадр который обрабатывает компьютер. У всех ведь разные компьютеры и фпс следовательно у каждого разный, Time.deltaTime компенсирует эту разница чтобы персонаж у каждого двигался с одинаковой скоростью независимо от фпс
@@pablo17391 именно поэтому стоит использовать только FixedUpdate, и неважно скока там фпс выдает комп. Time.fixeddeltaTime специально создан для использования в FixedUpdate, а FixedUpdate существует для работы с физикой. Я же спрашивал совсем про другое: почему нажатие клавиш не считывают в FixedUpdate? По сути это бесполезные лишние вычисления каждый кадр брать данные и никак их не использовать.
@@pablo17391 Я вообще не понимаю почему в unity до сих пор стоит по умолчанию эта конченная система управления, есть же нормальное на ивентах NewInputSystem.
Как ты так делал фон гайд пж
что делать если я поставил соллайдеры и на персонажа и на дерево, но все равно персонаж проходит на сквозь дерева, не могу понять почему так получается, уже и пробовал на дерево добавить rigitbody 2d, но все равно не получается, помогите
перепроверь то на каких слоях находится персонаж и на каким слоях находится дерево
Кто знает, что за игра в самом начале?
это соул найт на пк
@@kadirmolda7863 Не похоже, другой геймплей и интерфейс тоже не похож
Enter the Gungeon -_ -
я очень извиняюсь, помогите пожалуйста я в отчаяние
выдаёт вот такую ошибку Assets\scripts\control.cs(26,18): error CS1061: 'Animator' does not contain a definition for 'setFloat' and no accessible extension method 'setFloat' accepting a first argument of type 'Animator' could be found (are you missing a using directive or an assembly reference?)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class control : MonoBehaviour
{
public float speed;
private Vector2 direction;
private Rigidbody2D rb;
public Animator animator;
void Start()
{
rb = GetComponent();
}
void Update()
{
direction.x = Input.GetAxisRaw("Horizontal");
direction.y = Input.GetAxisRaw("Vertical");
animator.setFloat("Horizont",direction.x);
animator.setFloat("vertical",direction.y);
animator.setFloat("Speed", direction.magnitude);
}
void FixedUpdate()
{
rb.MovePosition(rb.position + direction * speed * Time.fixedDeltaTime);
}
}
Я конечно не умею делать анимации, но ты не получил компонент animator
Private void Start ()
{
rb = GetComponent();
animator = GetComponent();
}
Какая тема vs code?
Спасибо.
когда применяю spritesorter персонаж и объект уходят под тайлмап... как можно исправить? спасибо
Как только удаляю скрипт , персонаж и объект появляются )
А если несколько персонажей? Как правильно написать код в юнити
Руками
@@Hawk6895 ты каналы перепутал, тут по юнити, а тебе в камеди клаб надо .i.
Я не могу поменять скорость, у меня нет этой строчки, что делать?
Почему в параметрах Blend tree Я не могу ни чего добавить
скажите пожалуйста где вы пишите код
Это Visual Studio code. Но я советую visual studio. Он должен был скачатся вместе с unity. Но между vs и vsc отличий вроде нет, кроме как интерфейс, в vsc он сделан так чтобы тебя ничего не отвлекало.
Что зв игра вначале?
Что за мелодия играет с 13:21
Остальные взяты из свободных источников, но именно эта моя) В вк можно найти как "Dodiki records - музыка для выбора доширака" :D
Помогите кто ни будь, после того как добавляю скрипт что перс проходил за объектом, при запуске я иду чуть выше середины и он уходит под фон, что делать ?
нашли решение? у меня тоже самое
что за ассет?
Может кто будет это читать и поможет мне, я использую тайлмап и следовательно не могу взять позишен для рендеринга (у всех тайлов он одинаковый, а это проблема), так вот, в чём вопрос, может кто знает как это обойти (с помощью кода) или же мне стоит отказаться от тайлмапа и просто размещать объекты на сцене (напрямую)?
Можете помочь? У меня персонаж дергается
возможн омоделька кривавата
И этот гайд слишком новый:(
буду ждать лучших времён, когда доберусь до интернета нормального и обновлю юнити.
Залетай на мой канал, там выходят уроки по Юнити для начинающих
The type or namespace name 'Rigivody2D ' cloud not be found
Видео конечно хорошее, но для новичков слишком быстро. Мало акцента делал на основных моментах и все куда-то спешил
Не работает анимация когда дергаю красный круг не работает
Все починил
сигма
пиздец то на 0.25 ОЧЕНЬ БЫСТО то на норм скорости моментами очень медленно, лучше пусть видео будет дольше чем снимать на телефон в 0.25 и смотреть еще раз в замедленном на телефоне
У меня скрипт на игрока не перекидывается
тоже самое
проблема такая: Unity в режиме редактора: в свойствах Animator( у игрока) есть контролер Player, а если переключить в режим игры, то контролер пропадает, приходится вставлять, только после этого появляется анимация. Что можно сделать?
Так разобрался) у меня в начале сцены есть кат-сцена, и она как-то убирает этот контролер, буду думать как исправлять)
А как с таким видом реализовать прыжок на объекты ?
никак, только сделать box colider при попадании в который будет телепортировать наверх
@@rophop6373 ruclips.net/video/6THkCmSPf38/видео.html тут по твоему что? это не 3 д иначе пространство искажалось при передвижении. Конечно могу ошибаться. но реализацию ни где не видел
нихера не понял, ооочень интересно но слишком быстро и новичку ничего не понятно
бесполезный урок
воровать у brackeys а код и я могу!!!! Хоть бы ссылку оставил, видео классное конечно, но все равно!
поменяй тему а то не программист
мне пишет ts\script\NewBehaviourScript.cs(9,13): error CS0246: The type or namespace name 'Rigidboady2D' could not be found (are you missing a using directive or an assembly reference?)
как решить проблему
мой скрипт:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class NewBehaviourScript : MonoBehaviour
{
public float speed;
private Vector2 direction;
private Rigidboady2D rb;
void Start()
{
rb = GetComponent();
}
void Update()
{
direction.x = Input.GetAxisRaw("Horizontal");
direction.y = Input.GetAxisRaw("Vertical");
}
void FixedUpdaite()
{
rb.MovePosition(rb.position + direction * speed * Time.fixedDeltaTime);
}
}
после rb не равно а -
если есть желание могу скинуть скрипт
@@Berserkus-y2f скинь пж
Надо писать Rigidbody а не boady
@@mello_game6338 извини смог только сейчас
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerControler : MonoBehaviour
{
public float speed;
private Vector2 direction;
private Rigidbody2D rb;
// Start is called before the first frame update
void Start()
{
rb = GetComponent();
}
// Update is called once per frame
void Update()
{
direction.x = Input.GetAxisRaw("Horizontal");
direction.y = Input.GetAxisRaw("Vertical");
}
void FixedUpdate()
{
rb.MovePosition(rb.position + direction * speed * Time.fixedDeltaTime);
}
}
Какая тема vs code?