Единство: замедление вызвано чем-то?

Я выяснил, как создать пакет ресурсов, содержащий анимационный клип, а затем загрузить этот анимационный клип в другой проект, а затем переопределить существующий анимационный клип новым с помощью сценария. В основном цель состоит в том, чтобы позволить пользователям редактировать анимацию.

Теперь все, к счастью, работает, но по какой-то причине происходит замедление. Я не уверен, что вызывает замедление, когда все загружается в стартовом кадре:

Вот мой код:

protected Animator animator;
protected AnimatorOverrideController animatorOverrideController;
protected AnimationClipOverrides clipOverrides;

void Start()
{
    animator = GetComponent<Animator>();
    animatorOverrideController = new AnimatorOverrideController(animator.runtimeAnimatorController);
    animator.runtimeAnimatorController = animatorOverrideController;

    clipOverrides = new AnimationClipOverrides(animatorOverrideController.overridesCount);
    animatorOverrideController.GetOverrides(clipOverrides);
    LoadAnimation();
}

public void LoadAnimation()
{
    StartCoroutine(LoadAnimClip());
}        

IEnumerator LoadAnimClip(string )
{
    var FilePath = Application.streamingAssetsPath + "/Characters/Sonic/Animations/stand";

    var req = AssetBundle.LoadFromFileAsync(FilePath);
    yield return req;
    AssetBundle animationAsset = req.assetBundle;

    AnimationClip animation = animationAsset.LoadAsset<AnimationClip>("Stand") as AnimationClip;

    clipOverrides["Idle"] = animation;
    animatorOverrideController.ApplyOverrides(clipOverrides);

}

Если вам интересно, что такое animationclipoverrides, вот класс:

public class AnimationClipOverrides : List<KeyValuePair<AnimationClip, AnimationClip>
{
    public AnimationClipOverrides(int capacity) : base(capacity) { }

    public AnimationClip this[string name]
    {
        get { return this.Find(x => x.Key.name.Equals(name)).Value; }
        set
        {
            int index = this.FindIndex(x => x.Key.name.Equals(name));
            if (index != -1)
                this[index] = new KeyValuePair<AnimationClip, AnimationClip>(this[index].Key, value);
        }
    }
}

0 ответов

Другие вопросы по тегам