negitamago
3/3/2019 - 3:02 AM

キー入力でアニメーションを切り替え、画面にアニメーション名を表示する

キー入力でアニメーションを切り替え、画面にアニメーション名を表示する

using UnityEngine;
using UnityEngine.UI;

/// <summary>
/// キー入力でアニメーションを切り替え、画面にアニメーション名を表示する
/// </summary>
public class ChangeAnimation : MonoBehaviour
{
    [SerializeField] Animator anim =null;
    [SerializeField] Text text = null;
    [SerializeField] float delay = 0.1f;
    [SerializeField] string triggerName = "Trigger";
    [SerializeField] KeyCode key = KeyCode.Space;

    private void Start () => UpdateText ();

    private void Update ()
    {
        if ( Input.GetKeyDown ( key ) )
        {
            anim.SetTrigger ( triggerName );

            text.text = "";

            // AnimationClip が切り替わるのを待って名前を表示
            Invoke ( nameof ( UpdateText ), delay );
        }
    }

    private void UpdateText ()
        => text.text = anim.GetCurrentAnimatorClipInfo ( 0 )[0].clip.name;
}