К сожалению, я не смог передать полностью в заголовке ,то что хочу сделать.
Есть пару объектов ,которые должны быть одиночками(синглтонами).
Скрипт синглтонов:
public static UnitySingleton Instance { get; private set; }
private void Awake()
{
if (Instance)
{
Destroy(gameObject);
}
else
{
DontDestroyOnLoad(gameObject);
Instance = this;
}
}
Проблема в том , что таких объектов у меня много и каждый раз делать скрипт не хочу.
Есть один вариант:
Сделать несколько публичных объектов и синглтонов
public static UnitySingleton Instance { get; private set; }
public static UnitySingleton Instance2 { get; private set; }
public GameObject first;
public GameObject second;
Потом просто делать так
private void Awake()
{
if (Instance)
{
Destroy(first);
}
if (Instance2)
{
Destroy(second);
}
else
{
DontDestroyOnLoad(first);
Instance = this;
}
}
Вот только код работать не будет и нуждается в правке.
1.Этот фрагмент вряд ли будет работать так как нужно
public static UnitySingleton Instance2 { get; private set; }
public static UnitySingleton Instance2 { get; private set; }
2.Чем мне заменить Instance = this? (У меня же будет пару объектов);
3.Как сделать
if (!= Instance2) ?
Думаю ,вы меня поняли.Нужно сделать противоположное
if (Instance2)(Просто else здесь не будет работать как нужно.)
Продвижение своими сайтами как стратегия роста и независимости