【发布时间】:2018-04-18 13:07:55
【问题描述】:
我有一个带有轨迹渲染器的导弹。
我想在完成渲染过程后销毁游戏对象(带有轨迹)。
下面的代码不起作用:
private TrailRenderer tr;
public void Start() {
tr = GetComponent<TrailRenderer>();
}
public void Update() {
if(tr) {
if(tr.isVisible == false) {
Destroy(this.gameObject);
}
}
}
【问题讨论】:
-
将
Debug.Log放入if(tr.isVisible == false)中,看看它是否为真。如果没有调用日志,那就是问题所在。还要在if(tr)里面再放一个,看看tr变量在Start函数中是否初始化成功。 -
我已经将 Debug.log 放入 if (tr.isVisible == false) 中,但没有任何显示。那就是问题所在。是否有其他方法可以检查渲染过程是否完成?
-
iniside if(tr) 怎么样?也必须满足这个条件。 “渲染过程已完成”是什么意思?最好只解释何时应该销毁 TrailRenderer。你目前试图解释这令人困惑
-
内部 if(tr) 结果为真。这样可行。对于渲染过程,我的意思是当轨迹动画刚刚完成时。然后我想销毁这个对象。
-
查看 ryeMoss 的回答
标签: c# unity3d game-physics