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

Внимание! Этот перевод, возможно, ещё не готов, так как модераторы установили для него статус «идёт перевод»

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

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

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;
}
}
}

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

MySingleton.Instance.MySingletonMember;

Внимание! Этот перевод, возможно, ещё не готов.
Его статус: идёт перевод

Переведено на Нотабеноиде
http://notabenoid.org/book/55263/242398

Переводчики: Zeke0028

Настройки

Готово:

100.00% КП = 1.0