摘要: Unity3d中,Object.Destroy()方法会将传入的参数对象销毁,这将导致在此之后所有对该对象的引用都会变成null。然而该方法在调用时并不会立即执行,在每一帧中,所有对Destroy()方法的调用都会延迟至当前帧的所有Update()调用结束后(真正rendering之前)统一执行。这相应产生的一个结果就是:在调用Destroy()后的同一个方法内,该对象仍然是可用的,对该对象的判空测试都返回true通过。 另外,如果调用Destroy()时传入了延迟时间的参数,则Destroy()将在延迟给定的固定时间后才执行。 阅读全文
posted @ 2012-06-13 19:32 李现民 阅读(867) 评论(0) 推荐(0) 编辑
摘要: 利用MonoBehaviour的OnBecameInvisible()方法。 该方法需要被挂接对象拥有renderer组件。如果没有,可以考虑给其加一个挂接一个cube子结节,借用该子结点的renderer触发OnBecameInvisible()方法。为了减少性能损失,还应该做如下处理: 将该子结点除Mesh Render之外的其它所有组件删除; 将renderer中的所有check box都重置; 将localScale的所有数值设置为0,以保证其不可见性; 还可以适当调整localPosition的值,以保证父结点在适当的位置完全不可见后再销毁; 阅读全文
posted @ 2012-06-13 11:57 李现民 阅读(636) 评论(0) 推荐(0) 编辑