Например, предположим, что у нас есть переменная здоровья в одном скрипте, и мы хотим получить доступ к этой переменной в скрипте пользовательского интерфейса для отображения здоровья, а с другой стороны, изменить высоту звука в соответствии с количеством здоровья.Я знаю несколько способов доступа к этой переменной, но они сильно зависят друг от друга.Как GetComponent, Singelton или даже C # событие.Я хочу знать, есть ли шаблоны, чтобы уменьшить эти зависимости?(Также эффективный и производительный)
Редактировать: Эта система событий у меня в голове, но я думаю, что у нее есть некоторые зависимости, которые они могут быть удалены, но я не знаю как, а также я не уверен в этом иего производительность.
public class Player {
public class HealthEventArgs : EventArgs {
public int currentHealth;
public HealthChangedEventArgs(int currentHealth) {
this.currentHealth = currentHealth;
}
}
public static event EventHandler<HealthEventArgs> HealthEvent;
public void NotifyHealthChanged(int health) {
if(HealthEvent != null) {
HealthEvent.Invoke(this, new HealthEventArgs(health));
}
}
}
public class OtherClass {
public void SubscribeToPlayerHealthEvent() {
Player.HealthEvent += Foo;
}
public void UnsubscribeFromPlayerHealthEvent() {
Player.HealthEvent -= Foo;
}
public void Foo(object o, HealthEventArgs e) {
//Do something with e.currentHealth
}
}