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;
...
ただ、サイドノートとして、私はあなたがリロードすることができる雑誌を特定した後、forループから「中断する」ことを忘れてしまったと思います。現在の状態では、空でないすべての雑誌の条件付きコードを実行します既にリロードするように選択されています。 – Serlite
笑、それを固定していただきありがとうございます。私は何とかforループが1つのフレームで完全に演奏されるのを忘れてしまった:P –