C# Game Programming Cookbook for Unity 3D / Программирование игр на Unity 3D C#. Книга готовых решений.: 1.1.3 Использование патерна Singleton в Unity

Оглавление
Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

Не слишком трудно понять, как полезные статические переменные могут быть в коммуникации между различными скриптами. В примере публичной статической переменой, приведенному выше, идея в том, что у нас есть объект контроллера игры, который должен быть доступен из одного или нескольких других скриптов нашей игры.

Zeke0028 27.09.14 в 11:51

0

Такой способ, был продемонстрирован в обшей Вики по Unity пользователя Эмиль Йохансен (AngryAnt). Он использует частную статическую переменную в сочетании с публичной статической функцией. Другие скрипты имеют доступ к публичной функции для получения доступа к частной статической переменой экземпляр этого скрипта, который возвращается через публичную функцию, так что бы только один экземпляр класса когда либо существовал в сцене, независимо от того, сколькими компонентами его связали и сколько раз его создавали.
Структура простого Singleton :

Zeke0028 27.09.14 в 11:59

0

public class MySingleton
{
private static MySingleton instance;
public MySingleton ()
{
if (instance != null)
{
Debug.LogError ("Не может иметь два объекта singleton.");
return;
}
instance = this;
}
public static MySingleton Instance
{
get
{
if (instance == null)
{
new MySingleton ();
}
return instance;
}
}
}

Zeke0028 25.09.14 в 02:58

0

Статическому экземпляру нашего скрипта можно получить доступ в любом месте, на любого скрипта, просто со следующим синтаксисом:

Zeke0028 27.09.14 в 12:01

0

MySingleton.Instance.MySingletonMember;

Zeke0028 25.09.14 в 02:58

0
Минутку...