Мой Raycast ударил объект за коллайдером - PullRequest
0 голосов
/ 18 марта 2019

Итак, я делаю FPS-игру на Unity.У меня есть вражеский объект с коробочным коллайдером и твердым телом, и я включаю isTrigger на Box Collider.Однако я не знаю почему, но я не мог застрелить врага.Удар Рэйкастом всегда поражал объект позади противника.Но когда я выключаю isTrigger на вражеском Box Collider, я могу ударить объект, но движение так странно.Может ли кто-нибудь помочь мне, как сделать так, чтобы Raycast мог попасть в коллайдер триггера?Большое спасибо

Raycast Code

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 ]

1 голос
/ 18 марта 2019

Спасибо за всех, кто помогает мне найти это решение.Это много значит для меня.Оказывается, мне нужно снять настройку физики Reuse Collision Callbacks, чтобы она работала.Спасибо всем: D

0 голосов
/ 18 марта 2019

Обычно Raycast поражает isTrigger объекты просто отлично.Если он действительно игнорирует цель, когда это isTrigger, возможно, вы используете Physics.queriesHitTriggers или queryTriggerInteraction, объясненные здесь: https://docs.unity3d.com/ScriptReference/Physics.Raycast.html

Это поможет, если вы предоставите свою строку кода Raycast,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...