2016-10-23 4 views
0

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

(-0.5, 0.4, -6.7) 
(-0.5, 0.5, -6.7) 
(-0.5, 0.6, -6.7) 
(-1.2, 0.6, -5.5) 
(-1.3, 0.6, -6.7) 

Хотя фактические шнуры объекта являются (-1.3, 0.6, -6.7). Я попытался создать функцию, которая напрямую получает преобразование, а затем вызывает это от объекта и противника, и такая же проблема возникает.

Вот это строки кода, которые создают и получить сценарий игрока:

Заявленный в классе

scr_Character player; 

В Awake функции

player = FindObjectOfType<scr_Character>(); 

как примечание оба объекта имеют Контроллер символов и Жесткое тело с субобъектом, удерживающим их соответствующие сетки.

Любая помощь была бы значительно оценена.

Edit:

Похоже, ось у медленно становится все ниже и ниже спускаясь примерно 0,1 каждые 20 кадров или около того. Затем каждые 5 кадров он на самом деле печатает правильные шнуры, а затем продолжает отсчет с помощью неправильных шнуров.

Я создал дочерний объект, который также получает преобразование и, похоже, имеет такую ​​же проблему.

playerTrans = GetComponentInParent<Transform>(); 

Редактировать снова: Похоже, что жесткая сила тяжести тела отвечает за значение у и заблокировав х он останавливает дрожание. Не знаю, что вызывает это, но это, похоже, устранило проблему.

+0

Я не вижу, как вы получаете ссылку на объект игрока? Используйте тег для своего плеера и найдите тег. – Emad

+0

действительно ли сценарий фактически не находит сам объект? Сценарий scr_Character является основным скриптом на проигрывателе, который имеет функцию, которую я использую, чтобы получить позицию игроков: public Vector3 getPosition() { { {} return transform.position; } –

ответ

0

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

Смежные вопросы