Как я могу добавить два Vector3 вместе в единстве - PullRequest
0 голосов
/ 19 февраля 2020

Я делаю 2d шутер. У меня есть Gameobject, который называется «Gun», когда Gameobject игрока касается оружия, он переходит в положение игрока. Однако затем я хотел бы переместить пистолет из этой позиции на спрайте игрока в руку спрайтов. Я думал, что самый простой способ сделать это - добавить вектор к начальному вектору, чтобы изменить координаты пистолета. Однако я не уверен, как добавить векторы, это то, что я пробовал, но возникает ошибка: «Vector3» не может быть использован в качестве метода.

Vector3 coords = GameObject.FindGameObjectWithTag("Gun").transform.position = GameObject.FindGameObjectWithTag("Player").transform.position;
Vector3 newcoords = coords + Vector3(1, 1, 0)

Ответы [ 2 ]

2 голосов
/ 19 февраля 2020

Вы должны создать экземпляр Vector3:

Vector3 newcoords = coords + new Vector3(1, 1, 0)
1 голос
/ 19 февраля 2020

Самый простой способ сделать это (учитывая, что ваш игрок правильно определен как древовидная структура, голова, торс, рука и т. Д. c), это назначить оружию местное положение руки или, что еще лучше положить оружие как дочерний узел вашей руки. Поэтому, когда вы будете вносить какие-либо изменения в руку, трансформация, вращение и c ваше оружие будет реагировать соответственно. Просто найдите «руку» в структуре вашего игрока, а затем назначьте «Weapon.Parent = Hand» (это, конечно, псевдокод, но вы знаете суть).
Конечно, если у вашего оружия уже была назначена позиция в мире, после создания это потомок руки игрока, вам нужно будет снова установить положение оружия, относительно положения руки (вы можете установить его на Vector3.zero и посмотреть, что вы получите в результате)

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