Unity C#-重新加载脚本无法正常工作
所以这个脚本应该在杂志间切换,而不是填满杂志。发生的是第一次重新加载,即使动画发生了,一切都发生了。弹匣只有在你射击并重新装弹后才会改变。重新加载将在4个弹匣中的2个弹匣之间切换,即使2个弹匣是空的(这是预期的,因为如果弹匣中有子弹,它可以切换) 代码如下:Unity C#-重新加载脚本无法正常工作,c#,unity3d,reload,gun,C#,Unity3d,Reload,Gun,所以这个脚本应该在杂志间切换,而不是填满杂志。发生的是第一次重新加载,即使动画发生了,一切都发生了。弹匣只有在你射击并重新装弹后才会改变。重新加载将在4个弹匣中的2个弹匣之间切换,即使2个弹匣是空的(这是预期的,因为如果弹匣中有子弹,它可以切换) 代码如下: if (Input.GetAxis ("Reload") > 0 && reloading == false && pressedReload == false && runningAu
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循环。。。多亏了:D作为旁注,我认为您在确定可以重新加载的杂志后忘记了将从for循环中断开-在当前状态下,它将为每个非空杂志执行条件代码,即使已经选择了一个来重新加载。哈哈,谢谢,这修复了它。不知何故,我忘记了for循环完全在一帧中播放:P
void Reload (int currentMagazine) {
if (currentMagazine == mags.Length)
currentMagazine = 0;
currMag = currentMagazine;
}