为什么 GetComponent returns 对 imageEffect 的引用为空?

why GetComponent returns null reference for imageEffect?

这个问题是无法解决的还是什么?我不需要提供任何代码示例它只是对任何人都不起作用!而且我不知道它怎么可能,你只需要试试这个:GetComponent<DepthOfField>().enabled = false;

假设我们有一个 MainCamera 对象并将其附加到 DepthOfField 图像效果 Script.and 我们创建另一个名为 whatever 的脚本并将其附加到 MainCamera 并且在 whatever 脚本中我们称之为:

void Start() {
  GetComponent<DepthOfField>().enabled = false;
}

它不应该工作吗?它不工作,它 returns 空引用异常,即使脚本附加到主 camera.is 它可以修复?如果是,我需要它!

它应该可以工作,因为它们都附加到同一个游戏对象。不过,还有许多其他方法可以尝试解决此问题。

你可以做到

 DepthOfField myDept;

void Start() {
myDept = GameObject.Find("MainCamera").GetComponent<DepthOfField>();
myDept.enabled = false;
}

或者您可以制作 DepthOfField public,然后从编辑器中分配 DepthOfField。例如,

public DepthOfField myDept; 

//将 MainCamera GameObject 从场景拖放到这里,它会自动将 DepthOfField 脚本分配给 myDept。

那你可以做

myDept.enabled = false;

为此,必须将 DepthOfField 附加到 MainCamera GameObject。