今回はAnimatorをさわってみようと思います
やりたいこと
・Stayを起点としてFireAttack , TailAttackをランダムに実行させる
①3種類のアニメーションを用意
②ParametersにisFireAttackとisTailAttackをTrigger型で追加
③StayからFireAttackへ伸びる矢印を選択しInspectorのConditionsにisFireballAttackを追加
※FireAttackからStayへ伸びる矢印には追加しません
④StayからTailAttackへ伸びる矢印を選択しInspectorのConditionsにisTailAttackを追加
※TailAttackからStayへ伸びる矢印には追加しません⑤csファイルを作り下記スクリプトをコピペ
using UnityEngine;
using System.Collections;
public class DragonMotionManagement : StateMachineBehaviour
{
public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
//新しいステートに移り変わった時に実行
int MotionNumber = 0;
MotionNumber = Random.Range (0, 2);
if (MotionNumber == 0) {
animator.SetTrigger ("isFireAttack");
}
if (MotionNumber == 1) {
animator.SetTrigger ("isTailAttack");
}
}
}
⑥矢印周辺の何もないところをクリックしてInspectorに⑤で作ったcsファイルを追加
⑦実行確認
これでStayを起点としてFireAttack , TrailAttackがランダムに実行されます
Unity4のときはモーションの終わりを取るのが面倒でしたがとても簡単になりました
他にも実行するタイミングを設定できるので下記参考サイトを見てやってみて下さい
参考サイト
http://japan.unity3d.com/blog/?p=1672
http://riberunn50.blog.fc2.com/blog-entry-25.html
http://qiita.com/toRisouP/items/b6540b7f514d18b9a426