所以我正在Unity上制作FPS游戏。我有一个带盒碰撞器和刚体的敌人对象,然后打开盒碰撞器上的isTrigger。但是,我不知道为什么,但是我无法射击敌人。射线投射总是命中敌人身后的物体。但是,当我关闭敌方Box Collider上的isTrigger时,我可能会撞到物体,但动作如此怪异。谁能帮助我,如何使Raycast命中触发盒对撞机?非常感谢
射线广播代码
void BulletFired() {
RaycastHit hit;
print("shoot");
if (Physics.Raycast(mainCam.transform.position, mainCam.transform.forward, out hit)) {
print(hit.transform.gameObject.name);
if (hit.transform.tag == Tags.ENEMY_TAG) {
print(hit.transform.tag);
hit.transform.GetComponent<HealthScript>().ApplyDamage(damage);
}
}
}
答案 0 :(得分:1)
感谢所有帮助我找到此解决方案的人。对我来说意义重大。 原来,我需要取消选中“重用冲突回调”的物理设置才能使其正常工作。谢谢大家:D
答案 1 :(得分:0)
通常Raycast
会命中isTrigger
个对象。如果在isTrigger时确实忽略了目标,则可能您使用的是Physics.queriesHitTriggers
或queryTriggerInteraction
,在这里解释了:https://docs.unity3d.com/ScriptReference/Physics.Raycast.html
如果提供您的Raycast
行代码,将会有所帮助。