2017-01-09 17 views
0

このスクリプトはマガジンを切り替える必要があり、マガジンを埋めるのではありません。何が起きるのかは、アニメーションが起こってもすべてであっても、最初のリロードで起こります。あなたが撮影してからリロードするまで、マガジンは変わりません。再読み込みは、2つが空であっても4つのマガジンのうち2つのマガジンに切り替わります(弾丸付きの雑誌があれば切り替えることができます)。ここでUnity C# - リロードスクリプトが正しく動作しない

コードです:

if (Input.GetAxis ("Reload") > 0 && reloading == false && pressedReload == false && runningAutomatic == false && mags[currMag] < magazineSize && animator.GetCurrentAnimatorStateInfo (0).IsName (shootAnim.name) == false) { 
    for (int i = 0; i < mags.Length; i++) { 

     if (mags [i] > 0) { 
      Reload (currMag + 1); 
      animator.SetFloat ("ReloadSpeed", reloadSpeed); 
      animator.Play (reloadAnim.name); 
      pressedReload = true; 
      reloading = true; 
     } 
    } 
} 
reloading = animator.GetCurrentAnimatorStateInfo (0).IsName (reloadAnim.name); 
    if (reloading) 
     pressedReload = false; 

...

+0

ただ、サイドノートとして、私はあなたがリロードすることができる雑誌を特定した後、forループから「中断する」ことを忘れてしまったと思います。現在の状態では、空でないすべての雑誌の条件付きコードを実行します既にリロードするように選択されています。 – Serlite

+1

笑、それを固定していただきありがとうございます。私は何とかforループが1つのフレームで完全に演奏されるのを忘れてしまった:P –

答えて

0

だけforループbreak;を忘れてしまった... Serliteにありがとう:D

関連する問題