Коробка коллайдера без сетки и Physics.Raycast - PullRequest
3 голосов
/ 19 марта 2012

Я разыграл Raycast только в одном существующем боксовом коллайдере в сцене

if (Physics.Raycast(mousePositionInWorld, transform.forward, 10))
{
   Debug.Log("Ray hit something");
}

Я получаю сообщение Рэй что-то ударил

Но я никогда не получу триггер на боксерском коллайдере

void OnTriggerEnter(Collider other) {
        Debug.Log("Menu hit");
    }

Целевым объектом является gameObject только с Box collider и скриптом для проверки триггера

1 Ответ

2 голосов
/ 19 марта 2012

OnTriggerEnter (и другие методы событий коллайдера) вызываются только в том случае, если столкновение действительно имеет место, но не путем наведения луча. Чтобы решить вашу проблему, это зависит от вашего варианта использования.

Если вы хотите отреагировать непосредственно перед настоящим столкновением, вы можете увеличить свой коллайдер, например, до размера ячейки 1,5

Если вам нужны оба случая, то есть реагировать на прямые столкновения, а в некоторых других ситуациях необходимо предпринимать какие-либо действия раньше, вам следует разделить код, например ::

.
if (Physics.Raycast(mousePositionInWorld, transform.forward, 10)) {
   doSomething ();
}

void OnTriggerEnter(Collider other) {
   doSomething ();
}

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