Animator Override Controller是用来配合Animator Controller使用的,它让Animator Controller变得更加实用,可以让不同的使用实例的在同一状态播放不同的动作,但保留原有的结构、参数和逻辑。
代码:
using System.Collections;
using System.Collections.Generic;
using UnityEditor.Animations;
using UnityEngine;
public class Aniamtor_09_27 : MonoBehaviour
{
public AnimationClip[] weaponAnimationClip;
protected Animator animator;
protected AnimatorOverrideController animatorOverrideController;
protected int weaponIndex;
public void Start()
{
animator = GetComponent<Animator>();
weaponIndex = 0;
animatorOverrideController = new AnimatorOverrideController(animator.runtimeAnimatorController);
animator.runtimeAnimatorController = animatorOverrideController;
}
public void Update()
{
if (Input.GetKeyDown(KeyCode.A))
{
weaponIndex = (weaponIndex + 1) % weaponAnimationClip.Length;
animatorOverrideController["animator1"] = weaponAnimationClip[weaponIndex];
}
}
}
代码直接用的API的。
链接:UnityEngine.AnimatorOverrideController - Unity 脚本 API