Реакция триггера на Raycast

Программирование на Юнити.

Реакция триггера на Raycast

Сообщение Kakaha_228 04 авг 2022, 16:26

Всем привет. Решил сделать выключатель на стене в своём FPS хорроре, но так как я новичок, я столкнулся с такой проблемой: написал скрипт выключателя, когда игрок встаёт в триггер этого выключателя, на экране появляется текст "Включить свет" и при нажатии ЛКМ свет включается, и так же для выключения. Но, убедившись в работоспособности скрипта, я решил переписать его, чтобы при попадании на него Raycast от камеры игрока, он видел этот Raycast и делал тоже самое, как и когда игрок встаёт в этот триггер. Вот нужная часть кода
Синтаксис:
Используется csharp
void OnTriggerStay(Collider col)
        {
                if (col.tag == "Player") {
                        Text.SetActive (true);
                        if (Input.GetKeyDown (KeyCode.Mouse0)) {
                                useLight ();
                        }
                }
        }

Поиск в гугле не дал результата, я так и не понял, как заставить его реагировать на Raycast... Думал в if (col.tag... переписать под Raycast, но кроме ошибок в консоли ничего не получил... Я понимаю, что это легкотня, но всё же как мне это сделать?
Kakaha_228
UNец
 
Сообщения: 6
Зарегистрирован: 21 фев 2021, 14:12

Re: Реакция триггера на Raycast

Сообщение Alkos26Rus 04 авг 2022, 16:37

Ну так где у тебя запускается рейкаст от камеры, там и нужно проверять на столкновение рейкаста с триггером, сам триггер не обнаружит рейкаст)
Единица - ноль
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1282
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва

Re: Реакция триггера на Raycast

Сообщение Kakaha_228 04 авг 2022, 16:40

Alkos26Rus писал(а):Ну так где у тебя запускается рейкаст от камеры, там и нужно проверять на столкновение рейкаста с триггером, сам триггер не обнаружит рейкаст)

Теперь рейкаст видит триггер, ну а дальше что? При попадании на него луча он по прежнему не рабоатет
Kakaha_228
UNец
 
Сообщения: 6
Зарегистрирован: 21 фев 2021, 14:12

Re: Реакция триггера на Raycast

Сообщение Alkos26Rus 04 авг 2022, 18:29

Kakaha_228 писал(а):
Alkos26Rus писал(а):Ну так где у тебя запускается рейкаст от камеры, там и нужно проверять на столкновение рейкаста с триггером, сам триггер не обнаружит рейкаст)

Теперь рейкаст видит триггер, ну а дальше что? При попадании на него луча он по прежнему не рабоатет

Кто он? Пустил рейкаст - если он столкнулся с нужным триггером - активировал кнопку - если не сталкивается - деактивировал кнопку
Единица - ноль
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1282
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва

Re: Реакция триггера на Raycast

Сообщение 1max1 04 авг 2022, 20:48

Никогда не используй Input в физических методах, проверять кнопки нужно только в апдейте, т. к. могут быть пропуски кадров или засыпание рб объекта что блокирует метод Stay.

Синтаксис:
Используется csharp
bool inTr = false;

// onTriggerEnter
inTr = true;

// onTriggerExit
inTr = false;

// update
if (inTr && input.mouse) // что-то делаем
Аватара пользователя
1max1
Адепт
 
Сообщения: 5087
Зарегистрирован: 28 июн 2017, 10:51


Вернуться в Скрипты

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

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