Синтаксис:
Используется csharp
dir = trans.position - target.position;
dir = dir.normalized;
trans.eulerAngles = new Vector3(0, 0, AngleBetweenVector(trans.position, target.position));
trans.position = Vector3.SmoothDamp(trans.position, target.position, ref partList[num].vel, smoothSpeed);
dir = dir.normalized;
trans.eulerAngles = new Vector3(0, 0, AngleBetweenVector(trans.position, target.position));
trans.position = Vector3.SmoothDamp(trans.position, target.position, ref partList[num].vel, smoothSpeed);
Получается хорошее движение, но с большим недостатком, если часто поворачивать или крутиться долго - то образуются места скопления множества спрайтов в гармошку и накладываются друг на друга, что плохо сказывается на фпс на мобильных устройствах, особенно если червь большой и длинный. Вот так это выглядит:
Поэтому мне нужно узнать, как бы это оптимизировать, например, как это сделано в игре Worms Zone, там, когда происходит скрутка червя либо поворот - то он укорачивается, части как бы всасываются друг в друга, причем таким образом, что примерно сохраняется общее расстояние между частицами, а потом когда едешь ровно то хвост "раскручивается" обратно:
Когда я пробовал делать что-то подобное, то получилось не очень, не хватает ума понять, как это сделать правильно, поэтому может кто-то поможет мне с этим, или подскажет как это лучше сделать? Спасибо.