Реакция триггера на 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
UNIт
 
Сообщения: 60
Зарегистрирован: 21 фев 2021, 14:12

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

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

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

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

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

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

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

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

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

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

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

Кто он? Пустил рейкаст - если он столкнулся с нужным триггером - активировал кнопку - если не сталкивается - деактивировал кнопку
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1642
Зарегистрирован: 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
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

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

Сообщение Kakaha_228 04 сен 2022, 16:26

Короче, сам разобрался. Почему-то никто не говорит прямо, что нужно делать, всё через какие-то непонятные намёки... В итоге пришлось разбираться самому и в итоге вышло это:

Код: Выделить всё
if(Physics.Raycast(transform.position, transform.forward, out hit, 2))
{
    if(hit.collider.tag == "Тег")-здесь нужно указать тег
    {
А здесь уже код. В моем случае через GetComponent запускать void другого скрипта.
    }
}

Данный код нужно вписать в код рейкаста на камере. Далее на нужный объект нужно накинуть скрипт, который будем активировать и присвоить объекту указанный тег. Просто, не правда ли? И почему "спецы" не могли даже ссылку на документацию скинуть, там же всё понятно написано...
Да не нужна мне подпись...
Аватара пользователя
Kakaha_228
UNIт
 
Сообщения: 60
Зарегистрирован: 21 фев 2021, 14:12

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

Сообщение Saltant 05 сен 2022, 11:30

В документации юнити есть пример рейкаста, че сложно открыть было шоле. Никогда не пойму людей которые на форуме темы строчат когда нужная им инфа написана в документации.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2236
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

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

Сообщение Kakaha_228 06 сен 2022, 12:30

Saltant писал(а):В документации юнити есть пример рейкаста, че сложно открыть было шоле. Никогда не пойму людей которые на форуме темы строчат когда нужная им инфа написана в документации.

В том примере нет кода проверки тега, я его выдрал с какого-то левого сайта
Да не нужна мне подпись...
Аватара пользователя
Kakaha_228
UNIт
 
Сообщения: 60
Зарегистрирован: 21 фев 2021, 14:12

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

Сообщение Saltant 06 сен 2022, 13:40

Kakaha_228 писал(а):
Saltant писал(а):В документации юнити есть пример рейкаста, че сложно открыть было шоле. Никогда не пойму людей которые на форуме темы строчат когда нужная им инфа написана в документации.

В том примере нет кода проверки тега, я его выдрал с какого-то левого сайта

лол, даж выдрал криво, потому что для проверки тега используется метод gameObject.CompareTag("тэг") который так же есть в документации, новички - вы чё не читаете доки? вы в школе так же учились типа, без учебников, мама деньги экономила? https://docs.unity3d.com/ScriptReferenc ... reTag.html
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2236
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6