Привет, я пытаюсь создать игру, в которой, если я проведу пальцем по устройству, игрок должен повернуться на 90 градусов после входа в ближайший коллайдер. Я хочу, чтобы поворот произошел только в центре коллайдера коробки. щас плейер крутится при вводе триггера .. помогите пожалуйста ..
1
RakeshChatra
26 Мар 2013 в 10:29
1 ответ
Лучший ответ
Вы можете получить центр коллайдера следующим образом:
Vector3 center = collider.center;
И есть предложение реализовать то, что вы хотите:
- Обнаружить Collider.OnTriggerStay (), как только это событие получено, начать запись ввода игроков.
- Обнаружение Collider.OnTriggerExit (), как только это событие получено, остановите запись ввода игроков, а если игрок провел по экрану, поверните вашего актера.
- Переставьте спусковой крючок.
А ниже - псевдокод:
bool shouldTurn = false;
void OnTriggerStay()
{
if (true//player swiped)
{
shouldTurn = true;
}
}
void OnTriggerExit()
{
if (shouldTurn)
//turn your actor
shouldTurn = false;
}
Надеюсь это поможет.
3
Nicolas Dai
26 Мар 2013 в 12:03
Спасибо за вашу руку помощи ... у меня есть еще одно сомнение ... если смахивание выполняется когда-либо раньше рядом с коллайдером с удержанием триггера, я хочу, чтобы игрок поворачивался только в центре коллайдера ..
– RakeshChatra
30 Мар 2013 в 15:01
Я думаю, вы можете просто немного переместить свой коллайдер, я думаю, ваш игрок должен повернуться в какой-то момент в зависимости от вашей сцены, а не на основе вашего коллайдера, поэтому вы можете просто переместить свой коллайдер, чтобы взаимодействовать со своей сценой, чтобы ваш игрок повернулся на правильный момент.
– Nicolas Dai
7 Апр 2013 в 12:35
Похожие вопросы
Новые вопросы
triggers
Триггеры - это правила, которые выполняют действия или вызывают функции в ответ на такие события, как условия соответствия или изменения базы данных. По возможности используйте с соответствующей базой данных, платформой, продуктом или сервисным тегом. Всегда используйте с соответствующим языковым тегом.