Показать сообщение отдельно
Старый 24.09.2020, 13:26   #24
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вызов гуя, есть проблемы.

Сообщение от Crystal Посмотреть сообщение
Первая ссаная тряпка ))
За тем, что в коде помимо перемещения квадов я управляю их прозрачностью и цветом )
Аниматор то используют чтобы в нужное время нужную анимацию запускать настраивая это чем то типа нодов.
А у меня нет никакой анимации, я просто квады двигаю куда мне надо )
Ну так анимации могут тоже всем этим управлять, даже спрайты тебе поменять могут в нужный момент, если потребуется. Animator да, для машины состояний, но так есть и компонент Animation. Есть например метод Sample, он устанавливает анимацию в то время, которое выставляется в состоянии добавленного клипа.

Небольшой пример:
var animation GetComponent<Animation>();
AnimationState state animation["HealthBarAnim"]; // состояние клипа HealthBarAnim
state.enabled true// включаем состояние
state.weight 1// вес клипа при смешивании
state.normalizedTime health/(float)maxHealth// здоровье, переведенное в диапазон  0..1
animation.Sample();  // установка анимации в нужное место 
Также как показал гугл, можно просто анимацию семплировать на объекте с помощью метода AnimationClip.SampleAnimation, но пишут что он не очень быстрый.

Даже рискну пример написать)
public AnimationClip healthBarClip;


void Update()
{
    
healthBarClip.SampleAnimation(gameObject, (health/(float)maxHealth) * healthBarClip.length);

__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Crystal (24.09.2020)