Почему GetComponent возвращает нулевую ссылку для imageEffect?
Эта проблема неразрешима или что? Мне не нужно предоставлять какой-либо пример кода, он просто никому не работает! и я не знаю, как это возможно, вам просто нужно попробовать это: GetComponent<DepthOfField>().enabled = false;
предположим, что у нас есть MainCamera
объект, и мы прикрепляем его DepthOfField
Эффект изображения Script.and мы создаем еще один скрипт с именем whatever
и прикрепить его к MainCamera
и в whatever
скрипт мы просто называем так:
void Start() {
GetComponent<DepthOfField>().enabled = false;
}
это не должно работать? ну, это не так, он возвращает исключение нулевой ссылки, даже если скрипт присоединен к основной камере. Это исправимо? и если да, мне это нужно!
1 ответ
Это должно работать, потому что они оба привязаны к одному GameObject. Хотя есть много других способов исправить это.
Вы можете просто сделать
DepthOfField myDept;
void Start() {
myDept = GameObject.Find("MainCamera").GetComponent<DepthOfField>();
myDept.enabled = false;
}
Или Вы можете сделать DepthOfField общедоступным, а затем назначить DepthOfField из редактора. Например,
public DepthOfField myDept;
// Перетащите объект GameObject MainCamera со сцены на него, и он автоматически назначит сценарий DepthOfField для myDept.
Тогда вы можете сделать
myDept.enabled = false;
Чтобы это работало, DepthOfField должен быть присоединен к MainCamera GameObject.