Unityでゲーム作るぞ

Unityでゲーム制作できるようになるまでのリアルドキュメント

三十三日目ー次々と落下してくるオカマゴブリンをしばいてしまう女騎士さん


前回できちんとアニメを割り振れるようになったので、のけぞりモーションを設定。更に"特定のアニメ中か"も判定、剣振った時のみ反応するように。

しかし今回も詰まった、メソッドを実行するSendMessageはreturnで値を返却できない事を忘れてて、型を指定してるのに戻ってくるのはvoidだvoidだと騒がれるエラーに困らされたし、

アニメ中かの判定も
var state : AnimatorStateInfo = animator.GetCurrentAnimatorStateInfo(0);
return state.IsName( "SwordAnimation.Attack");
みたいに書いてしまって、falseしか返って来なかった。
SwordAnimationはアニメのControllerそのものの名前であった。これはコンポーネントが欲しい時などに使うのであろう。
正しくはこの場合、GetCurrentAnimatorStateInfo(0);
で"今アニメしてるモーション"まで習得できてるので、指定すべきはその中、つまりControllerのレイヤー名。
return state.IsName( "Base Layer.Attack");
が正しかったっていう。というか、Animatorにレイヤーがあるのを始めて知った…そりゃそうか、いくら何でも一つの遷移図で完結するのはきついよね。

アニメのスクリプトに関してここを参考にした。
http://qiita.com/yando/items/601e6fd35002e77ae9c8