2016-10-20 5 views
0

をチェックしないで、私はアニメーター内の1つの状態が、私は別の状態をトリガーする、しかし、私はそれをチェックすることができません手動で、その後完了したことを確認したいです。私が間違っているつもりです 任意の提案は、ここで私がそうするために行っているコードは、このコードは、更新機能である(パラメータ「for_fire」と状態名 「立ち火災3」は一つの状態でも同じです):アニメーター状態私のゲームではなく、完了したかではない

counter_anim++; 
if (counter_anim >= 5) 
{ 
    counter_anim = 0; 
     float distance = Vector3.Distance (this.transform.position, new_target_points); 
     if (distance <= 1.0f && !enter_state) 
     { 
      navmesh.Stop(); 
      anim.SetBool ("is_Firing", false); 
      anim.SetBool ("for_fire", true); 

      print ("i come here "+this.anim.GetCurrentAnimatorStateInfo (0).IsName ("Standing fire 3")); 

      if (this.anim.GetCurrentAnimatorStateInfo (0).IsName ("Standing fire 3") == true) 
      { 
       enter_state = true; // this bool variable is not getting true 
      } 
     } 
} 
//print (enter_state+"  "+ this.anim.GetCurrentAnimatorStateInfo (0).IsName ("Standing fire 3")); 

if (enter_state && this.anim.GetCurrentAnimatorStateInfo (0).IsName ("Standing fire 3")==false) 
{ 
    //print (this.gameObject.GetComponent<Animator>().GetCurrentAnimatorStateInfo (0).IsName ("Standing fire 3")); 

    anim.SetBool ("for_fire",false); 
    anim.SetBool ("new_pos",true); 
    fire_occured(); 
} 

私は、敵が自分のポジションに行き、中断して立ち止まり、このアニメーションが止まり、次のアニメーションが始まるようにしています。コメントからコピー

+0

間違って行くことができる私はここに表示されていないいくつかのものがあります。例えば。 new_target_pointsまでの距離ですが、1fよりも低くなっていますか? enter_stateがfalseとして開始していますか? – Hrusilov

+0

はい、それは1Fよりも低くなる、私はここにデバッグなかったので、私は確信している、とENTER_STATEは本家の私は(this.anim.GetCurrentAnimatorStateInfo(あれば、私は通常、タグのために行くIsName()メソッドを持ついくつかの実装を見てきたデフォルト –

+0

でfalseです0).IsTag( "Standing fire 3"))。これは確かに私のために働いた。アニメーターでは、あなたの状態にタグを付けます。 – Hrusilov

答えて

1

私は(this.anim.GetCurrentAnimatorStateInfo(0).IsTag(「火3を立ち場合、私は通常、タグのために行くIsName()メソッドでいくつかの実装を見てきたにもかかわらず

"))。これは間違いなく私のために働いた。アニメーターでは、あなたの状態にタグを付けます。

私の推測では、命名規則が機能しなかったということです。あなたが間違っているか、状態ではなくクリップの名前を使用していた可能性があります。

+0

ありがとう..... :-) –

関連する問題