def1Nex, спасибо за урок, и основу в коде, я её редактировал и слелал движение игрока вслед за пальцем по x и y одновременно, у меня игрок телепортировался на нулевые координаты, и я это исправлял где-то 2 недели!, и ура я всё сейчас сделал), кому надо могу скинуть код
Лайк поставил. Норм кино 👍 и тема мне нужная сейчас. Но вот говоришь ты очень быстро. 🙂 Я слышать успеваю, а осознать нет. Опыта копейки у меня. Около полгода. Думаю было бы больше, и соображал бы быстрее.
@@def1NeX ну там можно также чз запятую их перечислить) ну это так - придирка, сорри) Так просто проще) и на инвоуке можно так писать Invoke?. что проверку не делать. А по теме - впервые делаю тач контроллер и уже употел. Твой урок очень логичный, хорошо структурирован и понятен. И код должен работать. НО он не работает. Я двигаю игрока чз Vector3.MoveTowards, т.к. у меня нет физики в игре. Но проблема в том, что он неправильно считает магнитуду. Постоянно нули выдает. Это может быть связано с тем, как юнити считывает точки касаний с Не ортографической камерой?
@@ginner9635 а я в видео Invoke без ? закастил? Значит ошибся, я всегда его с проверкой юзаю, видимо проглядел). По твоему вопросу сложно сказать в чем дело. Можешь в дискорд скрин с частью кода скинуть, посмотрю
После рестарта сцены, вылезает ошибка, чтобы не пытался сделать. Поможешь? MissingReferenceException: The object of type 'PlayerController' has been destroyed but you are still trying to access it. Your script should either check if it is null or you should not destroy the object.
Спасибо! только одна проблема основной код работает(проверял через дебаг и точки остановки) но вот когда делаю управление для гг он не реагирует на щелчки(подписался на ивент) всё вроде правильно сделал
можно через RigidBody добавлять силу в направлении делаем поле _rb с типом Rigidbody в старте _rb = GetComponent(); ну а дальше при свайпе вверх _rb.AddForce(Vector3.up) Вроде как то так
Круто конечно, но погугли про IPointClickHandler, iBeginDragHandler, IdragHandler, IEndDragHandler они все из пространства имен UnityEngine.EventSystems, их там еще много но это основные, они сделаны как раз что бы ты не писал Input.gettouch или тоже самое с мышкой, это же мрак, эти интерфейсы дают тебе все нужное и работают как на мобилке, так и на пк.
@@Fa1ust Это в корне не верно и глупо :DDDDDD Насмотрятся туториалов :D как минимум сцену гавном засрете :) ну вы поймете когда будете ( если будете ) работать в команде или там где есть код ревью, либо когда будете делать свой проект средних размеров и наткнетесь на кучу гавнища лишнего :)
что делать если после меню высвечивается ошибка: MissingReferenceException: The object of type 'Rigidbody' has been destroyed but you are still trying to access it. Your script should either check if it is null or you should not destroy the object. UnityEngine.Rigidbody.AddRelativeForce (UnityEngine.Vector3 force, UnityEngine.ForceMode mode) (at :0) UnityEngine.Rigidbody.AddRelativeForce (UnityEngine.Vector3 force) (at :0) player.Move (UnityEngine.Vector3 direction) (at Assets/Scripts/player.cs:53) player.OnSwipe (UnityEngine.Vector2 direction) (at Assets/Scripts/player.cs:27) SwipeDetection.CheckSwipe () (at Assets/Scripts/SwipeDetection.cs:70) SwipeDetection.Update () (at Assets/Scripts/SwipeDetection.cs:50)
не понял как этот код должен работать,
tapPos = Input.mousePosition;
swipeDelata = (vector2)Input.mousePosition - tapPos; //всегда = 0
Одно из лучших твоих видео, молодец!
А как сделать чтобы шарик перемещался пока ты держишь палец на экране?
Привет. А как сделать так, чтобы вызывать событие можно было только тогда, когда палец именно на той или иной области экрана?
кнопка в юи
def1Nex, спасибо за урок, и основу в коде, я её редактировал и слелал движение игрока вслед за пальцем по x и y одновременно, у меня игрок телепортировался на нулевые координаты, и я это исправлял где-то 2 недели!, и ура я всё сейчас сделал), кому надо могу скинуть код
Привет, можешь скинуть, было бы не плохо посмотреть)
ничего непонятно, но очень интересно
Хороший урок! Спасибо большое за труд!
Лайк поставил. Норм кино 👍 и тема мне нужная сейчас.
Но вот говоришь ты очень быстро. 🙂 Я слышать успеваю, а осознать нет. Опыта копейки у меня. Около полгода. Думаю было бы больше, и соображал бы быстрее.
а как предыдущее видео называеться где куб двигается?
Цей код-свайп буде працювати на андроїді? Бо я ще початківець у цьому.
Так
как сделать какое то любое событие свайпом
У меня ничего не работает, видимо потому что ты не показал скрипт под названием Finish который у тебя в проекте, мог ли бы ты показать его как нибудь?
Большое спасибо!!!
этот мастер заслужил свои 300 баксов
мы обязательно дождемся продолжения мультиплеера
А какой должен быть ForceValue?
как определить направление свайпа и конвертировать его в string?
Зачем тебе направление в виде строки? О_О
@@def1NeX я хочу сделать карту которая будет следовать за мышкой. Если повести в право то заюзаеться анимация и карта наколоситься вправо
@@Ilone345 ну так передавай направление вектором, зачем строкой
@@def1NeX мне нужно заюзать анимацию смотря в какую сторону, как сделать проверку этого направления?
а почему не public event Action OnSwipeInput; ?
Можно и так, я сделал через свой делегат. Вдруг ты захочешь добавить больше передающихся параметров, так удобнее как по мне
@@def1NeX ну там можно также чз запятую их перечислить) ну это так - придирка, сорри) Так просто проще) и на инвоуке можно так писать Invoke?. что проверку не делать. А по теме - впервые делаю тач контроллер и уже употел. Твой урок очень логичный, хорошо структурирован и понятен. И код должен работать. НО он не работает. Я двигаю игрока чз Vector3.MoveTowards, т.к. у меня нет физики в игре. Но проблема в том, что он неправильно считает магнитуду. Постоянно нули выдает. Это может быть связано с тем, как юнити считывает точки касаний с Не ортографической камерой?
@@def1NeX а и кстати: лучше отписываться от подписок в OnDestroy, чтобы память не текла)
@@ginner9635 и что бы Null Referenc'ы не ловить, да. Но я думаю, что это очевидно и люди сами это понимают
@@ginner9635 а я в видео Invoke без ? закастил? Значит ошибся, я всегда его с проверкой юзаю, видимо проглядел).
По твоему вопросу сложно сказать в чем дело. Можешь в дискорд скрин с частью кода скинуть, посмотрю
После рестарта сцены, вылезает ошибка, чтобы не пытался сделать. Поможешь?
MissingReferenceException: The object of type 'PlayerController' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
В объекте в котором ты подписываешься на ивент свайпа (а это PlayerController, я так понимаю) в OnDestroy отписывайся от ивента
@@def1NeX Спасибо, ты не только помог с проблемой , а еще и дал мне новую тему для изучения
Хорошее видео! Спасибо!
Появилась новая версия input system. Вы сделаете пример этого урока с его использованием?
Да, есть такое в планах
Коммент для продвижения
Спасибо! только одна проблема основной код работает(проверял через дебаг и точки остановки) но вот когда делаю управление для гг он не реагирует на щелчки(подписался на ивент) всё вроде правильно сделал
аналогично
Привет помоги мне ошибка Assets/SwipeDeyection.cs(53, 33): error CS1002: ; expected
Assets/SwipeDeyection.cs(79, 5): error CS0106:The modifier 'private' is not valid for this item
Assets/SwipeDeyection.cs(100, 2): error CS1513:} expected
Кто может подсказать как сделать чтоб куб по свайпам прыгал?
можно через RigidBody добавлять силу в направлении
делаем поле _rb с типом Rigidbody
в старте
_rb = GetComponent();
ну а дальше при свайпе вверх
_rb.AddForce(Vector3.up)
Вроде как то так
Perfect tutorial please more about android touching okey
ошибка Index out of bounds
Круто конечно, но погугли про IPointClickHandler, iBeginDragHandler, IdragHandler, IEndDragHandler они все из пространства имен UnityEngine.EventSystems, их там еще много но это основные, они сделаны как раз что бы ты не писал Input.gettouch или тоже самое с мышкой, это же мрак, эти интерфейсы дают тебе все нужное и работают как на мобилке, так и на пк.
Да ты что?)) Эти интерфейсы работают при взаимодействии с UI элементами только. Но зачем перед тем как что-то советовать, проверять информацию, да?)
@@def1NeX И все же, зачем городить огород, когда можно воспользоваться более простыми иснтрументами, или у тебя какая-то особенная неприязнь к UI?
@@Fa1ust Это в корне не верно и глупо :DDDDDD
Насмотрятся туториалов :D
как минимум сцену гавном засрете :)
ну вы поймете когда будете ( если будете ) работать в команде или там где есть код ревью, либо когда будете делать свой проект средних размеров и наткнетесь на кучу гавнища лишнего :)
как увеличить скорость ???
Когда ты сделал переменную "public float speed;" в юнити будет переменная speed и там сдела хоть 5000
когда там продолжение 2048?)
Осталось только смонтировать. Завтра-послезавтра
Не понял, а 2048 где? 🥺
В 3 части мы прикрутим свайпы к управлению, поэтому нужно было выпустить сперва этот видос.
@@def1NeX кхм, справедливо 👀
@@def1NeX круто что ты об этом подумал
А мне вот этот код нужно переделать на unity bolt, потому что это обязательное правило геймджема в котором я учавствую
что делать если после меню высвечивается ошибка: MissingReferenceException: The object of type 'Rigidbody' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
UnityEngine.Rigidbody.AddRelativeForce (UnityEngine.Vector3 force, UnityEngine.ForceMode mode) (at :0)
UnityEngine.Rigidbody.AddRelativeForce (UnityEngine.Vector3 force) (at :0)
player.Move (UnityEngine.Vector3 direction) (at Assets/Scripts/player.cs:53)
player.OnSwipe (UnityEngine.Vector2 direction) (at Assets/Scripts/player.cs:27)
SwipeDetection.CheckSwipe () (at Assets/Scripts/SwipeDetection.cs:70)
SwipeDetection.Update () (at Assets/Scripts/SwipeDetection.cs:50)
В ошибке же написано, юнити не видит rigidbody на объекте. Ты либо его дестройнул, либо не инициализировал и т.д. В общем, ищи проблему в этом.
попробуй решить добавлением проверки !null в скрипте player
private void Move(Vector3 direction)
{
if (this != null)
{
if (this.GetComponent())
{
_rb.AddRelativeForce(direction * Speed);
}
Debug.Log("-");
}
}
@@johnrif2531 спасибо, получилось
У кого не работает:
В скрипте SwipeDetection нужно добавить ?.Invoke:
72-74 строчка
SwipeEvent?.Invoke(_swipeDelta.x > 0 ? Vector2.right : Vector2.left);
SwipeEvent?.Invoke(_swipeDelta.y > 0 ? Vector2.up : Vector2.down);
if(swipeDelta.magnitude > _deadZone)
{
if (SwipeEvent != null)
SwipeEvent?.Invoke(swipeDelta);
ResetSwipe();
}
-,-