C # - это скомпилированный язык, поэтому, прежде чем вы сможете запустить любой код, он должен быть безошибочным. Отсутствующий класс - очень серьезная ошибка компиляции. Не существует способа (в Unity или иным образом), чтобы вы могли добиться того поведения, о котором вы просили.
Однако вы можете использовать условную компиляцию. Условная компиляция, как следует из названия, - это когда вы отбираете фрагменты кода во время компиляции, поэтому эти фрагменты никогда не компилируются, и для них не возникнет ошибок компиляции. Оберните ваш код в #if
/ #endif
как показано ниже:
#if WITH_NGUI
UIEventListener.Get(this.gameObject).onClick += expiryDateSettingsUIController.ActiveDeactiveUICaller;
#endif
Затем, чтобы этот код скомпилировался, вам нужно определить символ WITH_NGUI
условной компиляции. В Unity вы можете перейти к настройкам проигрывателя, и там будет окно с именем «Определение сценариев символов», где вы можете ввести столько символов, сколько захотите. Введите WITH_NGUI
в это поле, и код скомпилируется. Если у вас нет NGUI, просто удалите символ, и код больше не будет компилироваться.
Хотя это нехорошо. Вы были предупреждены.
РЕДАКТИРОВАТЬ: Вы могли бы также использовать отражение для доступа к классам, которые могут отсутствовать в вашей сборке, но это гораздо больше проблем, чем оно того стоит.