как преобразовать только положение x, а не y c# unity - PullRequest
1 голос
/ 04 августа 2020

Мне нужна помощь с изменением одного из моих c# скриптов. Я создал двумерные кнопки спрайта в единстве, на которых есть коллайдер прямоугольника, и использовал функцию OnMouseDown (). У меня есть сценарий c#, чтобы кнопки следовали за игроком и смещали их так, чтобы они не находились над плеером. Но когда мой игрок прыгает, положение кнопок y и x также меняется, поэтому кнопки тоже «прыгают». Мне нужно сохранить coords.y = playerTransform.position.y; и смещение, потому что кнопка должна быть смещена. Я бы хотел, чтобы положение кнопок изменилось по оси x, но не по оси y.

Вот мой код:

Vector3 coords = transform.position; //stores the current camera position in coords

coords.x = playerTransform.position.x; // set coords to be equal to the current players x coordinate
coords.y = playerTransform.position.y;
coords.x += offsetX;
coords.y += offsetY;
transform.position = coords; //set the cameras position to be equal to coords

1 Ответ

0 голосов
/ 05 августа 2020
transform.Translate(new Vector3(playerTransform.x + offsetX, 0, 0));

Это требует меньше кода и добавляет Vector3, который вы передаете в transform.position. Просто установите координаты, которые вы не хотите менять на 0.

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