Задать вопрос
@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?
  • Вопрос задан
  • 83 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Решения вопроса 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();
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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