2016-07-13 5 views
0

Unity 2D. У меня есть несколько спрайтов (облаков), которые должны хорошо плавать в небе. В основном анимация такая же - они идут справа налево (меняют положение X), но в разных положениях Y. Я не могу понять, можно ли достичь этого с помощью анимации/аниматора, следует ли создавать отдельные анимации для каждого облака?Unity 2D как анимировать X-позицию без возиться с Y?

До сих пор мне не удалось повторно использовать один аниматор, поскольку они всегда сворачиваются в одно и то же положение Y. Поэтому я закончил создание отдельных анимаций для каждого облака, но это выглядит немного странно. Есть ли способ лучше?

ответ

0

Если вы хотите использовать мультипликатор/анимационную технику - вы можете использовать единый аниматора и анимационный клип, но вам нужно удалить Y позы свойства от анимации, так же, как на картинке, то здесь мы имеем только X переменной enter image description here

+0

На самом деле это не работает для меня, потому что это означает, что координата X анимирована, но это не значит, что координаты Y и Z могут быть разными. –

0

Аниматор пишет Transform of Object, если вы используете один и тот же клип анимации для всех облаков, они будут следовать одному и тому же пути, который вы только что установили в анимации. Вот почему все ваши облака разделяют одну и ту же позицию Y; как @Ivzhenko Oleksii говорит, что вам нужно удалить свойство Y в анимационном клипе.

Вы можете использовать скрипт, который будет выглядеть примерно так:

void CloudAnimation() 
{ 
offset += Time.deltaTime; 
newCloudPos = new Vector3 (ActualCloudPos.x - offset, ActualCloudPos.y, ActualCloudPos.z); 

ActualCloudPos = newCloudPos; 
} 

Таким образом, ваше облако будет двигаться по оси X справа налево. Когда облако достигнет какой-то момент из ваших Полноэкранных вам нужна TODO что-то вроде этого:

ActualCloudPos = new Vector3(PlayerPos.x + 30f, RandomValueinY, 1f); 

Таким образом, ваше облако появится 30 единиц в передней части плеера и благодаря функции «CloudAnimation» он начнет его путешествовать через экран, похоже, что он движется.

Надеюсь, это поможет.

+0

Спасибо. Я рассматриваю возможность создания программного решения, но мне было любопытно, возможно ли это со стандартной анимацией/аниматором. –