@Zimaell

Как можно сократить instance?

допустим у менять есть класс который нужно использовать в других классах
public class DataStorage : MonoBehaviour{
  public static DataStorage instance;
  public AudioSource AudioMusic,
  void Awake(){
    instance = this;
    }
..............

ну а использую я в классах их так к примеру
public class Test : MonoBehaviour{
  public void StartGame(){
    if(DataStorage.instance.AudioMusic.isPlaying) DataStorage.instance.AudioMusic.Stop();
............

можно ли как-то сократить?
типа Di = DataStorage.instance и использовать не DataStorage.instance.AudioMusicа Di.AudioMusic?
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
ayazer
@ayazer
Sr. Software Engineer
эм.. ну да

var music = DataStorage.instance.AudioMusic;

if (music.isPlaying){
   music.Stop();
}


ну или второй вариант - просто проксировать запросы в инстанс. т.е код надо будет поправить как-то так

public class DataStorage : MonoBehaviour{
  private AudioSource _audioSource;

  public static DataStorage instance;

  public AudioSource AudioMusic => instance._audioSource;

  ...


и тогда использовать можно будет
if (DataStorage.AudioMusic.isPlaying){
  DataStorage.AudioMusic.Stop();
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы