所以这个脚本应该在杂志之间切换,而不是填满杂志。发生的事情是第一次重新加载,即使动画发生了一切。直到您射击然后重新加载后,弹匣才会改变。即使 2 个是空的,再次重新加载也会在 4 个弹匣中的 2 个之间切换(这是可以预期的,因为如果有一个带子弹的弹匣,它可以切换)。
这是代码:
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;
...
void Reload (int currentMagazine) {
if (currentMagazine == mags.Length)
currentMagazine = 0;
currMag = currentMagazine;
}