Я занимаюсь разработкой 2D-игры в Unity и столкнулся с проблемой.При попытке создания анимационных переходов для одной из моих анимаций по какой-то причине Unity мгновенно или очень быстро деактивирует мою анимацию (например, менее чем через секунду после того, как я ее активировал).Однако, когда у меня нет перехода к анимации, анимация работает нормально.Однако мне нужно иметь возможность перевести игровой объект обратно в состояние, в котором он находился до анимации после выполнения определенного условия, и поэтому я не могу оставить анимацию включенной.Кто-нибудь знает, как я могу решить эту проблему?
Я попытался переключить способ активации анимаций, чтобы посмотреть, может ли это быть связано с этим, попробовав и bool, и триггер как условие, которое определяет, когда переход долженслучается, но возникает та же проблема
Это грубая схема того, как я активирую анимацию
public class InteractControl : MonoBehaviour, IPooledObject
{
public static float timeLeft = 10f;
public void OnObjectSpawn()
{
anim = GetComponent<Animator>();
}
// Change this method to just be a temporary obstacle
void Update()
{
timeLeft -= Time.deltaTime;
if (timeLeft > 0)
{
anim.enabled = true;
}
if (timeLeft < 0)
{
anim.SetTrigger("FollowAd");
}
}
}
Объявление с переходом:
Объявление следует без перехода:
Настройки перехода:
Анимация должна активироваться, если timeLeft
больше 0
, и деактивироваться, как только она станет меньше 0
, и вернуть игровой объект в состояние, в котором он находился до запуска анимации.Прямо сейчас, если Ad Follow_ не имеет перехода, анимация работает при вызове, но не отключается.если к Ad Follow_ подключено пустое состояние, к которому оно должно перейти, то должно
anim.SetTrigger("FollowAd");
вызываться так, как показано выше, оно работает менее секунды или не работает вовсе, а затем переключается обратно в состояние по умолчанию,Он должен переключаться обратно только тогда, когда timeLeft < 0
.