Привет, я пытаюсь создать игру, в которой, если я проведу пальцем по устройству, игрок должен повернуться на 90 градусов после входа в ближайший коллайдер. Я хочу, чтобы поворот произошел только в центре коллайдера коробки. щас плейер крутится при вводе триггера .. помогите пожалуйста ..

1
RakeshChatra 26 Мар 2013 в 10:29

1 ответ

Лучший ответ

Вы можете получить центр коллайдера следующим образом:

Vector3 center = collider.center;

И есть предложение реализовать то, что вы хотите:

  1. Обнаружить Collider.OnTriggerStay (), как только это событие получено, начать запись ввода игроков.
  2. Обнаружение Collider.OnTriggerExit (), как только это событие получено, остановите запись ввода игроков, а если игрок провел по экрану, поверните вашего актера.
  3. Переставьте спусковой крючок.

А ниже - псевдокод:

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