LoginSignup
5
4

More than 5 years have passed since last update.

AnimatorStateInfoによる死亡モーションの実装

Posted at

AnimatorStateInfo

Unity5の新機能であるStateMachineBehaviorにはAnimatorStateInfoというものがあります。
これは簡単に言えばアニメーションの最中に処理を行うことが出来るものです。
AnimatorStateInfoはあらかじめスクリプト上でstateInfoと宣言されています。

StateMachineBehaviourについてはこちら

StateMachineBehaviourでAnimatorを監視する

スクリプト

Deadend
using UnityEngine;
using System.Collections;

public class DeadEnd : StateMachineBehaviour {
    //Unity上で値を入れる
    [SerializeField]
    private float endtime;
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {


    }

    override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
        //ゲームオーバーにする時間
        if (stateInfo.normalizedTime >= endtime)
        {
            //ゲームオーバーの状態に移行
            gameSystemManager.GameStateProp = GameState.ON_OVER;
        }
    }


    override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) 
    { 

    }

    }

normalizedtimeというのは時間を0から1で表すものです。例えば5秒のアニメーションがあるとして0秒の時は0、5秒の時は1と表されるということです。

AnimatorStateInfo

他にも様々な機能があり、今回実装した死亡モーション以外にも活用できるので試してみてください。
AnimatorStateInfo

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4