FPS Controller collision

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

FPS Controller collision

Сообщение kor1b 05 июл 2018, 00:31

Здравствуйте. Столкнулся с проблемой: не получается обработать столкновение FPS и стены. Пробовал через OnCollisionEnter, OnControllerColliderHit - ничего не выходит. Добавил на ФПС и на стену капсульный/кубический коллайдер не триггерный - ноль реакции. Код примерно такой
Синтаксис:
Используется csharp
void OnControllerColliderHit(ControllerColliderHit hit)
    {
      Debug.Log("Collision");
       
    }

В чем моя ошибка?
kor1b
UNITрон
 
Сообщения: 172
Зарегистрирован: 25 дек 2017, 20:32

Re: FPS Controller collision

Сообщение 1max1 05 июл 2018, 07:05

a charactercontroller висит на игроке?
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: FPS Controller collision

Сообщение kor1b 05 июл 2018, 07:11

1max1 писал(а):a charactercontroller висит на игроке?

Да, все есть. Это ФПС из стандартных ассетов
kor1b
UNITрон
 
Сообщения: 172
Зарегистрирован: 25 дек 2017, 20:32

Re: FPS Controller collision

Сообщение Xtir 05 июл 2018, 09:54

OnControllerColliderHit is called when the controller hits a collider while performing a Move.
Xtir
UNIверсал
 
Сообщения: 498
Зарегистрирован: 21 окт 2016, 00:37

Re: FPS Controller collision

Сообщение kor1b 05 июл 2018, 16:44

Xtir писал(а):OnControllerColliderHit is called when the controller hits a collider while performing a Move.

Видел. Но сразу вопрос: должен двигаться ФПС или объект, на котором висит скрипт (в моем случае стена)? Я пробовал с тем, что двигается ФПС, но ничего не выводится (
kor1b
UNITрон
 
Сообщения: 172
Зарегистрирован: 25 дек 2017, 20:32

Re: FPS Controller collision

Сообщение Xtir 06 июл 2018, 11:05

Двигаться должен твой фпс, причём двигаться он должен таким способом
Синтаксис:
Используется csharp
GetComponent<CharacterController>().Move(transform.forward);
или таким
Синтаксис:
Используется csharp
GetComponent<CharacterController>().SimpleMove(transform.forward);
, иначе OnControllerColliderHit работать не будет. Естественно на объектах с которыми он должен сталкиваться, должны быть установлены коллайдеры.
Xtir
UNIверсал
 
Сообщения: 498
Зарегистрирован: 21 окт 2016, 00:37

Re: FPS Controller collision

Сообщение kor1b 07 июл 2018, 00:14

Xtir писал(а):Двигаться должен твой фпс, причём двигаться он должен таким способом
Синтаксис:
Используется csharp
GetComponent<CharacterController>().Move(transform.forward);
или таким
Синтаксис:
Используется csharp
GetComponent<CharacterController>().SimpleMove(transform.forward);
, иначе OnControllerColliderHit работать не будет. Естественно на объектах с которыми он должен сталкиваться, должны быть установлены коллайдеры.

Ааа, так вот в чем дело. Я неправильно понял понятие Move (думал, что объект просто должен находится в движении). Отыскал нужный фрагмент в скрипте ФПС из стандартных ассетов и все заработало! Большое спасибо ^:)^
kor1b
UNITрон
 
Сообщения: 172
Зарегистрирован: 25 дек 2017, 20:32


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 21