Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于Unity的快速运动游戏对象碰撞检测_C#_Unity3d_Collider - Fatal编程技术网

C# 基于Unity的快速运动游戏对象碰撞检测

C# 基于Unity的快速运动游戏对象碰撞检测,c#,unity3d,collider,C#,Unity3d,Collider,我正在制作一个基本的太空射击游戏,但在使用触发器对撞机时遇到了问题 在游戏中,我有一个子弹预制,有一个胶囊触发对撞机连接到它和敌人现在是一个基本的立方体与一个盒子对撞机连接到它 当我运行游戏时,我开始射击子弹,而敌人的立方体直到几次射击后才消失 以下是我的子弹预制代码: void OnTriggerEnter(Collider col) { if (col.tag == "Enemy") { Destroy (col.gameObject);

我正在制作一个基本的太空射击游戏,但在使用触发器对撞机时遇到了问题

在游戏中,我有一个子弹预制,有一个胶囊触发对撞机连接到它和敌人现在是一个基本的立方体与一个盒子对撞机连接到它

当我运行游戏时,我开始射击子弹,而敌人的立方体直到几次射击后才消失

以下是我的子弹预制代码:

void OnTriggerEnter(Collider col) {
        if (col.tag == "Enemy") {
            Destroy (col.gameObject);
        }
    }
以及每个游戏对象的我的属性的屏幕截图:

子弹预制:

这是敌人的立方体:

这里是一个正在发生的事情的视频链接


我知道这个问题可能与评论中的问题类似,但我确实找到了另一个解决方案,可能对有这个问题的人有用

发生错误是因为我的“子弹”预置移动太快,以至于无法检测到碰撞

修复:我将Bullet Prefables刚体的碰撞检测属性更改为Continuous Dynamic,因为它移动得很快。刚体碰撞检测模式的完整参考链接如下


这与评论中“相似”问题答案的区别在于,答案与光线投射和非常简单的对撞机有很大关系(这正是我想要的).

我知道这个问题可能与评论中的问题类似,但我确实找到了另一个解决方案,可能对有这个问题的人有用

发生错误是因为我的“子弹”预置移动太快,以至于无法检测到碰撞

修复:我将Bullet Prefables刚体的碰撞检测属性更改为Continuous Dynamic,因为它移动得很快。刚体碰撞检测模式的完整参考链接如下


这与评论中“相似”问题答案的区别在于,答案与光线投射和非常简单的对撞机有很大关系(这正是我想要的).

这无疑是解决这一问题的一种有效的引擎内方式,但值得注意的是,在某些情况下,即使是这种模式也可能会错过高速小物体的碰撞。如果它对你有用,那太好了!当然,这是一个比手动检测即将发生的碰撞更简单的解决方案。这绝对是解决这一问题的一种有效的引擎内方式——但值得注意的是,在某些情况下,即使这种模式也可能会错过高速小物体的碰撞。如果它对你有用,那太好了!当然,这是一个比手动检测即将发生的碰撞更简单的解决方案。