Страницы

Поиск по вопросам

вторник, 9 июля 2019 г.

Доступ к меняющимся значениям скрипта другого объекта Unity

Есть один объект, на нем есть скрипт с public значениями. Есть другой объект, на нем скрипт, который должен брать некоторые переменные из первого и их выводить.
Сейчас это выглядит так
void Start() { AxisX = GameObject.FindGameObjectWithTag("Joystick").GetComponent().AxisX; }
private void OnGUI() { GUI.Label(new Rect(0, 0, 300, 30), "AxisX = " + AxisX.ToString("F3"); }
Он получает значения на старте, но они нулевые. Вероятно, дело в том что он их получает один раз?
Но ставить в Update функцию с FindGameObject и GetComponent - весьма нагрузочно.
Какое более простое решение получить изменяющиеся значения из скрипта другого объекта?


Ответ

Сделать во втором скрипте ссылку не на поле AxisX(скорей всего это не ссылочный тип !?), а на компонент.
// Назначить в редакторе. public FloatSpeedXYJoystick _AxisX;
void Start() { // Или найти тут. if(_AxisX == null) _AxisX = GameObject.FindGameObjectWithTag("Joystick"). GetComponent() }
private void OnGUI() { GUI.Label(new Rect(0, 0, 300, 30), "AxisX = " + _AxisX.AxisX .ToString("F3"); }

Комментариев нет:

Отправить комментарий