Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 关闭牵引装置_C#_Unity3d - Fatal编程技术网

C# 关闭牵引装置

C# 关闭牵引装置,c#,unity3d,C#,Unity3d,我有我追踪的计时器代码 private TrailRenderer tr; bool isEmit; float emitTimer; public float timeEmit = 2; // Start is called before the first frame update void Start() { tr = GetComponent<TrailRenderer>(); }

我有我追踪的计时器代码

     private TrailRenderer tr;
     bool isEmit;
     float emitTimer;
     public float timeEmit = 2;

    // Start is called before the first frame update
    void Start()
    {
        tr = GetComponent<TrailRenderer>();
    }

    // Update is called once per frame
    void Update()
    {
        if (tr.emitting)
        {
            isEmit = true;
            emitTimer = timeEmit;
        }
        
        if (isEmit)
        {
            emitTimer -= Time.deltaTime;
            if (emitTimer < 0)
            {
                isEmit = false;
                tr.emitting = false;
            }
        }
    }
}
当我走到我的触发器和线索是发射,它不会停止发射,即使我设置定时器为2。有人能看出我的错误吗

if (tr.emitting)
{
    isEmit = true;
    emitTimer = timeEmit;
}
这是你的问题。 设置emitTimer=timeEmit every frame,因此emitTimer将始终为2

删除该行并执行以下操作:

在Start方法中仅设置emitTimer=timeEmit一次,并将更新方法更改为:

void Update()
{
    if (tr.emitting)
    {
        isEmit = true;
    }
    
    if (isEmit)
    {
        emitTimer -= Time.deltaTime;
        if (emitTimer < 0)
        {
            isEmit = false;
            tr.emitting = false;
            emitTimer = timeEmit;
        }
    }
}
这个问题是关于,而不是关于