Unity обнаруживает касание пользователя относительно позиции игрока - PullRequest
0 голосов
/ 04 июня 2018

Все это делается в 2D-игре Unity.

Я пытаюсь создать Vector2, представляющий, где пользователь касается экрана относительно позиции игрока.Это делается с использованием двух других Vector2, один из которых - позиция игрока, а другой - позиция касания.Однако по какой-то причине я на самом деле определяю, где пользователь касается касания относительно нижнего левого угла экрана.Код довольно прост:

Vector2 Begin;
Vector2 CurTouch;
Vector2 Vec;
...
void Update()
{
    foreach(Touch t in Input.Touches)
    {
        if(t.phase == TouchPhase.Ended) do something with Vec
        else
        {
            Begin = transform.position;
            CurTouch = t.position;
            Vec = CurTouch - Begin;
        }
    }
}

В левом нижнем углу экрана абсолютно ничего нет.Я могу перемещать игрока, и Begin все еще находится в левом нижнем углу.Я попытался использовать положение различных компонентов плеера, которое я точно знаю, где я хочу их видеть, все еще в левом нижнем углу.

transform.position фактически используется в других местах в Update (), чтобы сбросить игрока, вставшего в случае падения, я перемещаю его на 1 единицу и сбрасываю его eulerAngles в 0, и этот фрагмент кода работает отлично, но для некоторыхпричина, по которой он хочет установить Begin = только в нижнем левом углу экрана.

Я использовал для установки Begin = t.position if t.phase == TouchPhase.Began, что прекрасно работало, но я решил, чтобыло бы лучше, если бы Begin = позиция игрока, которая сейчас работает не очень хорошо.

РЕДАКТИРОВАТЬ: я начал пытаться установить Begin на transform.position of ВСЁ (Стартовая платформа, Основная камера, разные коллайдеры,и т. д.) и начать просто не будет ничего кроме левого нижнего угла экрана.

1 Ответ

0 голосов
/ 04 июня 2018

Touch.position находится в пространстве экрана.Используйте Camera.ScreenToWorldPoint для преобразования в Worldspace.

Ссылка: https://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...