我正在制作一个基本的太空射击游戏,但我遇到了触发器对撞机的麻烦。
在游戏中,我有一个子弹预制件,它附有一个胶囊触发器对撞机,敌人现在是一个基本的立方体,附有一个盒子对撞机。
当我运行游戏时,我开始射击子弹,敌人立方体在几次射击之后不会消失。
这是我的子弹预制件的代码:
void OnTriggerEnter(Collider col) {
if (col.tag == "Enemy") {
Destroy (col.gameObject);
}
}
每个游戏对象的属性截图:
Bullet Prefab:
这是敌人的立方体:
以下是有关正在发生的事情的视频的链接......
答案 0 :(得分:2)
我知道这个问题可能与评论中发布的问题类似,但我确实找到了另一个解决方案,可能会对有这个问题的人有所帮助。
错误发生是因为我的"子弹"预制件移动速度太快,以至于无法检测到碰撞。
修复: 我将Bullet prefabs Rigidbody的碰撞检测属性更改为Continuous Dynamic,因为它正在快速移动。完全参考刚体碰撞检测模式,链接如下。
https://docs.unity3d.com/ScriptReference/Rigidbody-collisionDetectionMode.html
这与"相似的"之间的区别问题的答案中的答案是答案与Raycasting和非常简单的碰撞器有很大关系(这更像是我想要的)。