C# Game Programming Cookbook for Unity 3D / Программирование игр на Unity 3D C#. Книга готовых решений.: 2.2.5.1 Разбор скрипта
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
BasePlayerManager.cs наследуется от MonoBehavior, так что он может использовать системную функцию Awake (), чтобы вызвать его init() инициализацию: ilia1395 26.10.14 в 11:30 |
|
|
public class BasePlayerManager : MonoBehavior Zeke0028 25.09.14 в 03:19 |
||
|
Функция Awake () основана на предположении, что она может быть повторно использована, поэтому она начинается с установки булевой переменной didInit на ложную. Эта переменная может быть использована, чтобы сказать, действительно ли была вызвана функция Init () и завершила выполнение: ilia1395 26.10.14 в 11:33 |
||
|
public virtual void Awake () Zeke0028 25.09.14 в 03:19 |
||
|
Init () начинает с поиска ссылки на компонент DataManager скрипта (BaseUserManager как пояснил ранее в этой главе). ilia1395 26.10.14 в 11:38 |
||
|
public virtual void Init () Zeke0028 25.09.14 в 03:19 |
||
|
В этот момент, если переменная DataManager является нулевой, мы знаем, что компонент не был добавлен к этому GameObject, и этот код продолжает использовать gameObject.AddComponent (), чтобы добавить компонент BaseUserManager через код ilia1395 26.10.14 в 11:45 |
||
|
if(DataManager==null) Zeke0028 25.09.14 в 03:19 |
||
|
Теперь, когда функция Init () будет сделана, didInit может быть установлен на истинное(true) значение: ilia1395 26.10.14 в 11:46 |
||
|
// do play init things in this function Zeke0028 25.09.14 в 03:19 |
||
|
GameFinished () будет вызываться из внешнего скрипта (возможно скрипт игрового контроллера или подобный скрипт управления состоянием игры (game-state)), чтобы рассказать это игроку, когда игра закончена: ilia1395 26.10.14 в 11:49 |
||
|
public virtual void GameFinished() Zeke0028 25.09.14 в 03:20 |
||
|
Так же, как GameFinished(), GameStart() будет вызывать из внешнего скрипта, кода придет время начать игру. DataManager.SetIsFinished() вызывает, чтобы назначить переменной isFinished этого player's data manager на false: ilia1395 26.10.14 в 11:55 |
||
|
public virtual void GameStart() Zeke0028 25.09.14 в 03:20 |
