Wil*_*rim 0 c# unity-game-engine collider
我正在开发一款基本的太空射击游戏,但在触发碰撞器方面遇到了麻烦。
在游戏中,我有一个子弹预制件,上面附加了一个胶囊触发碰撞器,而敌人现在是一个基本的立方体,上面附加了一个盒子碰撞器。
当我运行游戏时,我开始射击子弹,敌人立方体直到几次射击后才会消失。
这是我的子弹预制件代码:
void OnTriggerEnter(Collider col) {
if (col.tag == "Enemy") {
Destroy (col.gameObject);
}
}
Run Code Online (Sandbox Code Playgroud)
以及我的每个游戏对象的属性的屏幕截图:
子弹预制件:
这是敌人的立方体:
这是正在发生的事情的视频链接......
我知道这个问题可能与评论中发布的问题类似,但是我确实找到了另一种解决方案,可能对遇到这个问题的人有用。
发生错误是因为我的“Bullet”预制件移动得太快,以至于无法检测到碰撞。
修复:我将 Bullet 预制件刚体的碰撞检测属性更改为连续动态,因为它移动速度很快。刚体碰撞检测模式的完整参考链接如下。
https://docs.unity3d.com/ScriptReference/Rigidbody-collisionDetectionMode.html
这个问题与评论中发布的“类似”问题的答案之间的区别在于,答案与光线投射与非常简单的碰撞器(这更多是我想要的)有很大关系。