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;
}
}
}
这个问题是关于,而不是关于