UnityのアセットストアにあるLocomotionに色々アニメーションを追加しているのですが、
OnTriggerEnterとTagを使って対応するタグを持つオブジェクトに対して様々な反応をさせたいのですが、どうもうまくいきません。
現在のアニメーション遷移図です。もともとあるアニメーションに「Jump」と「Crim」を追加しています。
「Jump」に関しては問題なく動作しています。問題は「Crim」で、「WalkRun」に遷移していないようなのです。
「Crim」のインスペクタ画面です。
「WalkRun」から「Crim」へ遷移する矢印のインスペクタ画面です。
C#
1 void OnTriggerEnter (Collider other) { 2 3 Animator anim = GetComponent<Animator>(); 4 5 if(other.tag == "wall1") 6 { 7 anim.SetBool("is_jumping", true); 8 9 } 10 AnimatorStateInfo state = anim.GetCurrentAnimatorStateInfo(0); 11 12 if(state.IsName("Locomotion.Jump")) 13 { 14 anim.SetBool("is_jumping", false); 15 } 16 17 if(other.tag == "wall2") 18 { 19 anim.SetBool("is_crimbing", true); 20 21 } 22 AnimatorStateInfo stateInfo = anim.GetCurrentAnimatorStateInfo(0); 23 24 if(stateInfo.IsName("Locomotion.Crim")) 25 { 26 anim.SetBool("is_crimbing", false); 27 } 28 }
OnTriggerEnter内でタグの持つオブジェクトに触れるとそれに対応するアニメーションをtrueにしたいつもりです。
その他、必要な情報があればお教えください。可能な限りの情報を開示します。
よろしくお願いします。
追記
おそらく原因としては"is_crimbing"がfalseにならずにアニメーションがループしてしまっているのだと思います。
OnTriggerEnter内の記述に誤りがあるのでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/23 02:46