В Unity, чтобы получить переменную из другого скрипта в функции Update(), существует несколько способов. Вот некоторые из них:
1. Ссылка на компонент:
Вы можете использовать ссылку на компонент, в котором находится переменная. Для этого, в скрипте, который имеет доступ к переменной, создайте public переменную ссылочного типа и присвойте ей ссылку на компонент. Затем, в функции Update() этого скрипта, вы сможете получить доступ к переменной через ссылку на компонент.
Пример:
public class ScriptA : MonoBehaviour { public int variable; } public class ScriptB : MonoBehaviour { public ScriptA scriptA; void Update() { int variableA = scriptA.variable; // Делать что-то с variableA } }
2. Статическая переменная:
Если переменная в другом скрипте является статической, то вы можете получить доступ к ней без необходимости ссылки на объект этого скрипта. В этом случае, в функции Update(), вы можете обращаться к переменной напрямую, используя имя класса, в котором объявлена статическая переменная.
Пример:
public class ScriptA : MonoBehaviour { public static int variable; } public class ScriptB : MonoBehaviour { void Update() { int variableA = ScriptA.variable; // Делать что-то с variableA } }
3. События и делегаты:
Вы можете использовать события и делегаты для обмена информацией между скриптами. Создайте событие в скрипте, содержащем переменную, и определите также делегат. Затем, в функции Update() этого скрипта, вызовите событие и передайте переменную в качестве аргумента. В другом скрипте, подпишитесь на это событие и получите переданную переменную.
Пример:
public class ScriptA : MonoBehaviour { public delegate void VariableUpdatedHandler(int variable); public static event VariableUpdatedHandler OnVariableUpdated; public int variable; void Update() { if (OnVariableUpdated != null) { OnVariableUpdated.Invoke(variable); } } } public class ScriptB : MonoBehaviour { void OnEnable() { ScriptA.OnVariableUpdated += HandleVariableUpdated; } void OnDisable() { ScriptA.OnVariableUpdated -= HandleVariableUpdated; } void HandleVariableUpdated(int variableA) { // Делать что-то с variableA } }
В зависимости от вашей ситуации, вы можете выбрать оптимальный способ получения переменной из другого скрипта в функции Update().