Size: a a a

2021 April 14

L

Lucas in unity3d.ru
если у вас не тонны объектов, то почему бы дотвином не двигать
источник

KM

Konstantin Marunchen... in unity3d.ru
Даже 50 снарядов на сцене это мало, с дутвином вполне норм будет. Если там 4000, то там и без дутвина проблемы будут
источник

А

Александр in unity3d.ru
Если не хочется ничего юзать и/или тестировать и прям удобно, и все. Создаёшь тип траектории, куда «запекаешь что угодно». Например, сделаный посредством пустых геймобджектов сплайн. После «запекания» удаляешь пустые объекты. Судя по игре, объекты или движется один по траектории или группа. Делаешь что-то что управляет движением группы. Одиночные часто даже вне определенных траекторий а по своей логике/группе траекторий двигаются. Все легко, но сделать гибкий и вырезаний редактор для «запекания траекторий» займёт время. Хочешь такую игру и прям сотни тысяч агентов — dots в помощь
источник

PV

P. Vernikovsky in unity3d.ru
Я пишу под андроид. Мой первый проект. Стараюсь сразу использовать правильные подходы, а не просто найти первое подходящее решение.  У меня есть и обджект пулинг, и аддрессаблы, почти ноль логики в апдейтах - все на эвентах и проч. Поэтому не хочется тащить здоровенную махину в самую интенсивную вещь моей игры - снаряды и мобов)
источник

KM

Konstantin Marunchen... in unity3d.ru
источник

PV

P. Vernikovsky in unity3d.ru
Я примерно так и сделал:
    void Start()
   {

       points = new List<Vector2>
       {
           this.transform.position,
           this.pivotPosition1.position,
           this.pivotPosition2.position,
           this.targetPosition.position
       };

       var go = Instantiate<GameObject>(Loot);
       
       BezierPath bezierPath = new BezierPath(points, false, PathSpace.xy);
       path = new VertexPath(bezierPath,transform);
       ScenePath.bezierPath = bezierPath;
       go.GetComponent<LootMover>().Init(path);
       Debug.Log(path.ToString());
   }
источник

PV

P. Vernikovsky in unity3d.ru
и двигаю
 if (_path != null)
       {
           dstTravelled += speed * Time.deltaTime;
           transform.position = _path.GetPointAtDistance(dstTravelled, endInstruction);
       }
источник

KM

Konstantin Marunchen... in unity3d.ru
Вот только с дутвивном можно будет сглаживание движений сделать, ускорение/замедление и тд.
источник

KM

Konstantin Marunchen... in unity3d.ru
Для мобов может пригодиться. Для снарядов мб такого достаточно
источник

PV

P. Vernikovsky in unity3d.ru
DOTween
Frame time: 9 ms
GC Allocations: 0 B

Интересные цифры! Самое крутое, что никаких аллокаций) Я то инстантинирую каждый раз БезьерПас
источник

A

Alex in unity3d.ru
А как же обжект пулы ?=))
источник

PV

P. Vernikovsky in unity3d.ru
А как я сплайн в обжект пул запихну? :)
источник

KM

Konstantin Marunchen... in unity3d.ru
Там же рассчитывается кривая для каждого снаряда отдельно, они не одинаковые
источник

_

_KKK_ in unity3d.ru
ну они на стадии загрузки уровня могут прогружаца
источник

KM

Konstantin Marunchen... in unity3d.ru
Если бы одинаковые были, можно было бы с оффсетом двигать по одной кривой
источник

PV

P. Vernikovsky in unity3d.ru
Не, ТОЛЬКО динамически) Видос с игрой - это просто пример, я не делаю ее клон)
источник

PV

P. Vernikovsky in unity3d.ru
Плюс - сплайн у меня не является GO. Это чистый класс C#
источник

IK

Ivan Kulibin in unity3d.ru
Подскажите приличный ассет для установки описания на игровые объекты. Чтоб в инспекторе почитать и на сцене увидать
источник

_

_KKK_ in unity3d.ru
типа у тебя каждый раз новые траектории чтоли?)
источник

А

Александр in unity3d.ru
А что пула не может быть для не юнитевских объектов?)
источник