2D анимация Unity не будет воспроизводиться после SetActive(true)
У меня есть двухмерная игра в стиле одного экрана, где у меня отключен игровой объект. Под этим находятся несколько детей, которые анимированы. Родительский объект содержит аниматор для детей. Когда я включил родительский, анимация не будет воспроизводиться. Аниматор выглядит так, как будто он пытается обработать состояние входа по умолчанию, но не завершается. Я провел некоторое исследование по этому вопросу, и кажется, что отключение и последующее включение чего-либо не запускают аниматор. Я попытался написать некоторый код для него безуспешно, и установка ложного рендерера спрайтов также не будет работать, так как спрайтов просто слишком много. Вот моя последняя попытка: есть идеи?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class animationState : MonoBehaviour
{
public Animator anim;
private void OnEnable()
{
if (anim.gameObject.activeSelf)
{
anim.Play("pinWheelAnimation");
}
}
}
2 ответа
Unity не работает так, вы не можете установить аниматор для родительского объекта, который будет влиять на анимацию от детей, вам придется настроить аниматор для каждого ребенка. Если вы хотите изменить аниматоры дочерних объектов из родительского объекта, вы можете сделать это с помощью скрипта, который ищет все дочерние элементы и их компоненты и изменяет их параметры.
Взгляните на это: параметры аниматора
Попробуйте установить IdleState в качестве DefaultState без времени выхода и без анимации и определите событие триггера для перехода в состояние анимации. Затем активируйте триггер в
void Start()
{
}