0

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

在游戏中,我有一个 Bullet 预制件,上面附有一个 Capsule Trigger Collider,而敌人现在是一个附有盒子碰撞器的基本立方体。

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

这是我的子弹预制代码:

void OnTriggerEnter(Collider col) {
        if (col.tag == "Enemy") {
            Destroy (col.gameObject);
        }
    }

以及我的每个游戏对象的属性截图:

子弹预制件:

子弹预制件

这是敌人的立方体:

在此处输入图像描述

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

https://youtu.be/NjHK6oVP0OQ

4

1 回答 1

5

我知道这个问题可能与评论中发布的问题相似,但是我确实找到了另一种解决方案,它可能对有这个确切问题的人有用。

发生错误是因为我的“Bullet”预制件移动得太快以至于无法检测到碰撞。

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

在此处输入图像描述

https://docs.unity3d.com/ScriptReference/Rigidbody-collisionDetectionMode.html

这与评论中发布的“类似”问题的答案之间的区别在于,答案与光线投射与非常简单的对撞机(这更多是我正在寻找的)有很大关系。

于 2017-05-30T19:27:01.193 回答