Натолкнулся вот на это:(ссылка)
Коротко: есть кнопки, и при запуске подписываются обработчики. Все хорошо, код абсолютно безопасен. Но он плох. Почему?
void Awake ()
{
saveDirPath = Application.dataPath + "/Levels/";
if (buttonSave != null) {
UIEventListener.Get (buttonSave.gameObject).onClick += OnButtonSave_Click;
}
if (buttonLoad != null) {
UIEventListener.Get (buttonLoad.gameObject).onClick += OnButtonLoad_Click;
}
if (buttonInputDialogOk != null) {
UIEventListener.Get (buttonInputDialogOk.gameObject).onClick += OnButtonInputDialogOk_Click;
}
if (buttonInputDialogCancel != null) {
UIEventListener.Get (buttonInputDialogCancel.gameObject).onClick += OnButtonInputDialogCancel_Click;
}
if (buttonselectLevelDialogClose != null) {
UIEventListener.Get (buttonselectLevelDialogClose.gameObject).onClick += OnButtonselectLevelDialogClose_Click;
}
}