Есть один объект, на нем есть скрипт с public значениями.
Есть другой объект, на нем скрипт, который должен брать некоторые переменные из первого и их выводить.
Сейчас это выглядит так
void Start()
{
AxisX = GameObject.FindGameObjectWithTag("Joystick").GetComponent
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");
}
Комментариев нет:
Отправить комментарий