C# 为什么我的武器重新装填的协同程序不起作用?

C# 为什么我的武器重新装填的协同程序不起作用?,c#,unity3d,C#,Unity3d,我有一个重新装填武器的代码,如果我开始装填,切换到其他武器,然后切换回应该装填的武器,武器不装填,不能射击,并且会显示以前武器的弹药显示。。。知道为什么吗?我尝试将IEnumerator设置为public,但也没有成功 使用UnityEngine; 使用系统集合; 使用TMPro; 公共类GunScript_SB:单一行为 { 公众浮子损坏=10f; 公共浮动范围=100f; 公共浮子冲击力=30f; 公共浮式消防车的火灾率=15f; 公共浮点数maxAmmo=10; 私人弹药; 公共浮动重新加

我有一个重新装填武器的代码,如果我开始装填,切换到其他武器,然后切换回应该装填的武器,武器不装填,不能射击,并且会显示以前武器的弹药显示。。。知道为什么吗?我尝试将
IEnumerator
设置为
public
,但也没有成功

使用UnityEngine;
使用系统集合;
使用TMPro;
公共类GunScript_SB:单一行为
{
公众浮子损坏=10f;
公共浮动范围=100f;
公共浮子冲击力=30f;
公共浮式消防车的火灾率=15f;
公共浮点数maxAmmo=10;
私人弹药;
公共浮动重新加载时间=3f;
私有bool isReloading=false;
公共摄像机;
公众参与制度;
公共游戏对象冲击效应;
公共文本网Prougui弹药显示;
私用浮标NEXTITMETOFIRE=0;
void Start()
{
当前弹药=最大弹药;
}
void onEnable()
{
isReloading=false;
amomdisplay();
}
//每帧调用一次更新
无效更新()
{
如果(isReloading)
返回;
如果(当前弹药=nextTimeToFire)
{
下一次火灾=时间。时间+1f/火灾率;
射击();
}
如果(弹药显示!=空)
{
amomdisplay();
}
if(Input.GetKeyDown(KeyCode.R)和¤tAmmo
切换武器后,您的协同程序可能仍在运行。添加引用字段并在再次启动前停止协同路由:

私有协同路由重新加载协同路由;
如果(重新加载路径!=null){
StopCorroutine(重新加载Corroutine);
}

reloadCoroutine=start例程(Reload())切换武器后,您的协同程序可能仍在运行。添加引用字段并在再次启动前停止协同路由:

私有协同路由重新加载协同路由;
如果(重新加载路径!=null){
StopCorroutine(重新加载Corroutine);
}

reloadCoroutine=start例程(Reload())