Unity3D OnTriggerStay,OnTriggerExit问题
是这样,我的激光炮碰到物体时触发OnTriggerStay,当物体消灭后,触发OnTriggerExit,但是事实不时这样,当物体消灭后,就不触发OnTriggerExit了,只有我的激光炮在物体未被消灭前移开物体才会触发OnTriggerExit,有没有什么办法能够使物体被消灭后就执行我的OnTriggerExit里面的代码,或则说能在Update里面判断此刻不在执行OnTriggerExit这个方法
这样吧,你可以事先声明一个collider,触发OnTriggerStay的时候,用这个collider存储正在碰撞的物体,物体一旦消灭,collider就为空了,然后在update里面判断这个物体是否为空的,为空就执行你的OnTriggerExit就行了。
OntriggerExit的生命周期丢失了。。。因为你在OnTriggerStay的时候将this.gameobject已经销毁,所以OntriggerExit也一并销毁
你可以在OnTriggerStay 关闭mesh组件,然后 在OntriggerExit执行代码并销毁对象
物体被消灭不要删除碰撞体,只是把meshrender隐藏,OnTriggerExit执行完了再彻底删除物体
有没有什么办法能够使物体被消灭后就执行我的OnTriggerExit里面的代码
不是太理解您的需求,物体被消灭有对应的事件OnDestroy,将OnTriggerExit的代码移到这里是否可行?
或者变通一下,只是隐藏外形,保留Collider组件,仍然可以触发碰撞相关代码。
如果对您有帮助,请点击采纳答案好吗,谢谢~~
你可以在销毁物体前执行掉Exit里的代码,然后再销毁物体哦
你的OnTrigger是放在被消灭物体还是激光?
应该是挂载物体的脚本上的吧?
你是想触发Exit里的函数?
按照你的思路,你应该把函数放在Destroy里,也就是销毁的时候。 或者Ondisable里。
对了,提醒你哦,如果敌人很多的话,最好学会用对象池,当然了,自己做小游戏无所谓啦