No video
Движение по пути - гибкий вариант #2 - Unity легко
Это вторая часть, в которой я уже покажу, как непосредственно прикрепить объект к существующему пути.
Номер карты для поддержки - 4149629398195479
/ graphicaldesignua - мой патреон для поддержки)
t.me/joinchat/K3HCV0nUjP4X7kC... - телеграм канал в котором можете пообщаться с другими разработчиками.
unity.com/ru - ссылка на Unity
Пікірлер: 84
Ребят, если хотите чтобы игрок поворачивался в сторону следующей точки: РЕЗКО: ====== Vector3 newDir = Vector3.RotateTowards(transform.forward, (pointInPath.Current.position - transform.position), 1, 0.0F); transform.rotation = Quaternion.LookRotation(newDir); ====== ПЛАВНОСТЬ + КОНТРОЛЬ: добавляем ещё один float: public float speed_rotation; ====== Vector3 newDir = Vector3.RotateTowards(transform.forward, (pointInPath.Current.position - transform.position), 1, 0.0F); transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(newDir), Time.deltaTime * speed); ====== Вставляем один из этих кодов после: if (Type == MovemtType.Moveing) { transform.position = Vector3.MoveTowards(transform.position,pointInPath.Current.position,Time.deltaTime * speed); } else if(Type == MovemtType.Lerping) { transform.position = Vector3.Lerp(transform.position, pointInPath.Current.position, Time.deltaTime * speed); } >>СЮДА. var distanceSqure = (transform.position - pointInPath.Current.position).sqrMagnitude; if(distanceSqure { pointInPath.MoveNext(); }
Шикарный урок. Большое спасибо :) Теперь осталось это натянуть на Безье))))
Спасибо , за столь полезные и подробные ролики!
Спасибо за урок!! Очень круто!!
Вы лучший, спасибо!
Крутой ролик =)
Спасибо большое автору !!!
спасибо, было полезно и пригодилось!
Спасибо огромное!
Сделал для себя, но тоже пользуйтесь) 0:06 - начало 0:29 - начало писания скрипта 9:02 - конец писания скрипта и проверка
Спасибо.
Подписчики растут, хоть по тихому и то хорошо !
18 тысяч подписчиков 🤔🔥
Ти лучший.и на 3д и на 2д ахиреть
Ну подскажите пожалуйста как сделать поворот спрайта по пути к точкам. Хочу сделать Словно как поезд по рельсам едит. Заранее спасибо!
Спасибо огромное. Возникла одна проблема. Скрипт кинул на Prefeb. Если объект на сцене то можно добавить в инспекторе My Path, если не на сцене маршрут не подкидывается. Подскажите как сделать чтобы прифаб появлялся на сцене уже с маршрутом?
А как сделать один путь для нескольких объектов? В данном варианте, объекты, привязанные к одному пути, двигаются не по одинаковой траектории. каждый новый объект двигается к следующей от предыдущего объекта точке. Может создавать копию пути или как-то изменить корутин? подскажи, пожалуйста.
Лайк
Привет, слушай а у тебя уже нет готовых игр ? ну т.е те что ты сделал и выложил в стим итд чтобы посмотреть )
А если у меня есть объект который может двигаться сам но мне нужно, чтобы объект двигался к точкам как это сделать? или можно взять лиж кусок скрипта?
зафиксировать объект на точке можно на некоторое время?
Привет, уроки очень крутые, пожалуйста можешь в следующих уроках показать генерацию данжа, как в игре "SoulKinght"
@anatar4516
4 жыл бұрын
Константин Чигрик в этой игре вроде уже берутся готовые комнаты и рандомно ставятся
Как настроить разные пути для одного объекта?
Спасибо за пример! А как сделать, чтобы объект , после достижения конечной точки маршрута, не шел назад, а просто останавливался?
@jugo-stream
3 жыл бұрын
Присоединяюсь к вопросу)
@sweeepeeee
2 жыл бұрын
@@jugo-stream при достижении последней точки вырубать скрипт, служащий для движения. Или флаг какой-нибудь прописать и менять его
Почему когда ставишь на путь много объектов, то они начинают двигаться хаотично?
Можете код виложить, что б можно было скачать. Я учу пайтон, но игры Делать люблю. Если не трудно. Спасибо 🙏
Крутой ролик, но есть один нюанс, 2д объекты двигаются (и 3д тоже), но при запуске сцены объекты при движении пропадают из камеры, а на сцене по прежнему остаются и выполняют поставленную задачу, если изменить код (с Vector3) на Vector2 то объект будет двигаться только к первоначальной точке, если её во время игрового процесса передвинуть, объект медленно будет следовать к ней (ну это зависит от раздела speed) в общем полазил на множество форумах ничего полезного по этому поводу не нашел. Короче если кто то знает с чем может быть связанна эта проблема помогите, пожалуйста!
@Borodatenkiy
2 жыл бұрын
Не успел написать комментарий, уже сам додумался что может стать причиной этого бага, в общем у элемента Path нужно было сбросить позицию по Z (так объект сможет появиться в камере, а камеру нужно поставить на Z -10+)
братан, привет! сделай пожалуйста ролик как сделать колесо фортуны в игре. на ютубе нигде на такую тему видосов нет, и в гугле ничего
@The_Mavrik
4 жыл бұрын
Там же ничего тяжёлого нет. Сделать колесо и чтоб при нажатии оно начинало крутиться с рандомной силой в определенном диапазоне. Разделяешь колесо мысленно по градусам на сектора. К примеру у тебя 6 секторов, 360/6 = каждый сектор в 60 градусов. В момент остановки смотришь сколько градусов и определяешь сектор по градусам.
А как можно сделать, чтоб объект смотрел в сторону движения (в случае с картиной, то она смотрит в одном направлении)?
@oleksiikulahin5983
3 жыл бұрын
мне тоже такое нужно, думаю, что можно положение текущей точки отнять от положения следующей и получить Вектор3, из него уже замутить направление взгляда
@perdil-ws7th
3 жыл бұрын
с помощью flipX
@fussiony8624
2 жыл бұрын
Узнал как сделать чтоб объект смотрел в сторону движение?)
Unity3D Как задать траекторию движения объекта
Доброе времени суток! у меня со скриптом проблемы. в инспекторе нет My Path хотя вроде правильно всё написал вот скрипт мой, из вашего ролика. using System.Collections; using System.Collections.Generic; using UnityEngine; public class PositionPlatforma : MonoBehaviour { public enum MovementType { Moveing, Lerping } public MovementType Type = MovementType.Moveing; public MovementPath MyPath; public float speed = 1; public float maxDistance = .1f; private IEnumerator pointInPath; // Start is called before the first frame update void Start() { if (MyPath == null) { Debug.Log("Примени путь"); return; } pointInPath = MyPath.GetNextPathPoint(); pointInPath.MoveNext(); if (pointInPath.Current == null) { Debug.Log("Нужны Точки"); return; } transform.position = pointInPath.Current.position; } // Update is called once per frame void Update() { if (pointInPath == null || pointInPath.Current == null) { return; } if (Type == MovementType.Moveing) { transform.position = Vector3.MoveTowards(transform.position, pointInPath.Current.position, Time.deltaTime * speed); } else if (Type == MovementType.Lerping) { transform.position = Vector3.Lerp(transform.position, pointInPath.Current.position, Time.deltaTime * speed); } var distanceSqure = (transform.position - pointInPath.Current.position).sqrMagnitude; if (distanceSqure { pointInPath.MoveNext(); } } } может я где то ошибся? исправьте, если можно или я что то не вдупляю просто
@maxkun8446
Жыл бұрын
проверь два скрипта
@maxkun8446
Жыл бұрын
я в место IEnumerator написал IEnumerable
Немного не по теме видео, но всё же, очень хотелось бы видеть видео по типу "при срабатывание триггера, появлялся какой- то объект(К примеру при взятия кристалла(срабатывание тригерра) активировался (появлялся) портал)", уже 3 дня ищу что то подобное, а у самого не получается...Удачи!
@The_Mavrik
4 жыл бұрын
А что именно не получается не понимаю? Инициализируй портал или делай активным когда надо.
@karpa2895
4 жыл бұрын
@@The_Mavrik Да уже ничего, сам как то код написал, хотя я в c# почти полный нуль....
У меня пишет что MovementPath типо не найден
Хорошо, что мало людей знают про такой хороший канал, ведь инфу по юнити больше почти нигде не раздобыть на Ютубе,
@anatar4516
4 жыл бұрын
Leo TM Man наоборот плохо
@FloatingGames
4 жыл бұрын
@@anatar4516 зато никто не знает) меньше конкурентов)))
@anatar4516
4 жыл бұрын
Leo TM Man Ну это тебе, а автору нет
@anatar4516
4 жыл бұрын
Leo TM Man в принципе всю эту инфу можно и самому придумать, прям чего-то нереального тут нет :)
@FloatingGames
4 жыл бұрын
@@anatar4516 у автора своя, теплая аудитория, он снимает для нее очень старательно) я думаю что 1000000 он не особо желает)
Что делать если пишет The type or namespace name 'MovementPath' could not be found (are you missing a using directive or an assembly reference?)? Скажите как решить пж.
@abuibnabutalip
3 жыл бұрын
если нашли ответ подскажите пожалуйста , у меня такие же проблемы
@avduhinplay9286
3 жыл бұрын
@@abuibnabutalipНет, не нашёл
@Anonim-hq6lh
3 жыл бұрын
выделяешь MovementPath (alt + enter) и записываешь его как класс, там последняя строчка и сохраняешь в этом же файле
@Anonim-hq6lh
3 жыл бұрын
@@avduhinplay9286 выделяешь MovementPath (alt + enter) и записываешь его как класс, там последняя строчка и сохраняешь в этом же файле
@Koston2012
3 жыл бұрын
Проверь как ты назвал скрипт из первого видео
Подскажи пожалуйста, будет ли работать в 3Д? ()
@graphicaldesign2776
4 жыл бұрын
Будет
привет! ты на каком языке пищещ (я новичок совсем) где урок установки этой программы
@prefaimers2321
2 жыл бұрын
боже мой, зачем я это прочитал… Иди русский выучи прежде чем программировать
Спасибо, то, что нужно! Только, наверное, имелось ввиду moving и square, а не moveing и squre :)
Graphical Design помогите, спасите, выручайте. Пытаюсь сделать так что бы по пути объект перемещался по нажатию стрелок, но он поворачивает к обратной точке только когда достигнет текущую. Каким образом сделать так что бы он слушался стрелок и между точками?
@graphicaldesign2776
4 жыл бұрын
Я же не знаю как реализовано переключение между точками.
@timtarantino3180
4 жыл бұрын
@@graphicaldesign2776 код ваш, я просто пытаюсь возвращать yield return arrayPoints[movingTO+1] или yield return arrayPoints[movingTO-1] в зависимости от нажатия стрелки
Пасиииба
Как расставить точки?
@borisovilya4377
3 жыл бұрын
Смотри 1 часть
Всё работает только возникла одна проблема когда запускаю игру то платформа становится невидимая, когда смотрю через сцену как работает игра то её видно, не подскажете как решить данную проблему?
@graphicaldesign2776
4 жыл бұрын
она может становиться за фон. можно поменять ей order in layer
@Max-ex9rd
4 жыл бұрын
@@graphicaldesign2776 ок, я попробую, но я ещё фон не ставил, стоит всё по дефолту
@Max-ex9rd
4 жыл бұрын
Нет это точно не та проблема, когда платформа просто стоит её видно, когда кидаю на нее скрипт она становится невидимая, но всё работает она поднимает, вроде всё делал по видео и ошибок в скрипте не должно быть
@graphicaldesign2776
4 жыл бұрын
@@Max-ex9rd Если поднимает, значит ошибки не в скрипте. Посмотри положение по Z, может она слишком близко к камере.
@Max-ex9rd
4 жыл бұрын
Да спасибо вы правы, только вот теперь хз как сделать что бы значение не менялось, я только вручную могу сменить его во время запуска, а так оно сразу сбивается. Это надо смотреть в скрипте камеры походу как я понял
Причём здесь теорема Пифагора? Может быть я чего-то не знаю, но по моему теорема Пифагора все-таки про стороны треугольника А здесь просто сравнивается расстояние до объекта. А квадрат длины вместо просто длины используется из-за того, что чтобы вычислить длину вектора нужно извлечь квадратный корень, а это самая затратная операция для процессора, поэтому в целях оптимизации квадрат длины сравнивается с квадратом максимального расстояния чёт такое ощущение будто автор сам не понимает о чем говорит Но в целом вроде неплохо
Можно готовый скрипт?