我的Raycast撞到了对撞机后面的物体

时间:2019-03-18 07:21:25

标签: unity3d

所以我正在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);
            }
        }
    }

2 个答案:

答案 0 :(得分:1)

感谢所有帮助我找到此解决方案的人。对我来说意义重大。 原来,我需要取消选中“重用冲突回调”的物理设置才能使其正常工作。谢谢大家:D

答案 1 :(得分:0)

通常Raycast会命中isTrigger个对象。如果在isTrigger时确实忽略了目标,则可能您使用的是Physics.queriesHitTriggersqueryTriggerInteraction,在这里解释了:https://docs.unity3d.com/ScriptReference/Physics.Raycast.html

如果提供您的Raycast行代码,将会有所帮助。