碰撞器触发和运动

时间:2015-01-24 18:06:28

标签: unity3d

我正在开展塔防风格游戏。我有一个带有球体对撞机的玩家游戏对象,炮塔射击射弹。弹丸有胶囊碰撞器。当玩家游戏对象移动时,OnTriggerEnter事件将为射弹的对手射击。当玩家不移动时,他们不移动。当我添加新炮塔时也是如此。炮塔有一个大的球体对撞机,以确定一个游戏物体是否足够接近射击。当我在播放时向场景添加新炮塔时,OnTriggerEnter直到我移动玩家游戏对象时才会发生,即使它已经在炮塔的球体对撞机内。

视频:http://screencast.com/t/x1QKtNEK

我该如何解决这个问题?我怀疑这是一个错误,只是我不了解Unity更新,或者与碰撞器触发器有关。

1 个答案:

答案 0 :(得分:2)

我不知道这是不是一个错误,但是unity's documentation说明了

  

" OnTriggerStay几乎被称为每个Collider的所有帧   另一个触及触发器。"

也许同样适用OnTriggerEnter和"几乎"这是问题所在。

至少在碰撞的其他部分你是否有刚体?相同的文档(和OnTriggerEnter文档)也说明了

  

"请注意,触发事件仅在其中一个碰撞器发送时发送   有一个严格的身体"。

希望您能找到解决问题的正确方法,但作为一种解决方法,您可以尝试将玩家的对手设置为小孩GameObject并在每一帧上移动一点。如果您在孩子GameObject上没有任何与呈现相关的内容,则没有人会注意到黑客攻击。

或者只需计算更新功能中与玩家的距离即可处理射弹。炮塔可以在启动功能中进行相同的计算。