Все это делается в 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 ВСЁ (Стартовая платформа, Основная камера, разные коллайдеры,и т. д.) и начать просто не будет ничего кроме левого нижнего угла экрана.