Я делаю сверху вниз шутер типа игры в Unity. Игрок может двигаться в мире, но камера движется вместе с ним, поэтому игрок всегда находится в середине экрана.GUI выравнивание текста с движущейся камерой в Unity
Я пытаюсь отобразить текст в верхнем левом углу экрана, и поэтому я привязал компонент GUItext к основной камере. Результат был весьма интересным - момент, когда игрок перемещает текстовые дротики с экрана.
Что текст должен отображаться контролируется игроком, поэтому я добавил следующие фрагменты кода в моем игрока сценария:
public GUIText scoreText;
void Update()
{
scoreText.pixelOffset = new Vector2 (300, 300);
}
void UpdateScore()
{
scoreText.text = "Lives: " + lives;
}
, но это ничего не меняет, а void UpdateScore()
Ждут» т.
Я довольно новичок в Unity, так что это, вероятно, очень простая ошибка ... но что я делаю ужасно неправильно?
EDIT: void UpdateScore()
работает сейчас, когда я звоню от void FixedUpdate()
.
EDIT (снова): Я исправил проблему, создав новый пустой объект, в котором ничего нет, кроме преобразования (которое никогда не перемещается) и текстового компонента графического интерфейса. Проблема, которую я сейчас имею в том, что якорь в тексте графического интерфейса работает очень странно - он работает, только если я положил его на нижний левый (тогда как я хочу его в левом верхнем углу). Попытка изменить якорь перемещает его где-то с экрана. Вот моя иерархия:
Как выглядит ваша иерархия? –