disable な GameObject は FindWithTag/GetComponent できない

Unityのロゴ。

disable が設定された GameObject は、FindWithTag, GetComponent, 他に Camera.main などによって、取得することができません。 disable が設定される可能性がある GameObject は、disable が設定されるよりも前に参照を保持しておく必要があります。

例えば次のような場合です。少々冗長なコードですが、実際には Camera.main で取得することができます。

Camera mainCamera = GameObject.FindWithTag("MainCamera").GetComponentInChildren<Camera>();

このとき mainCamera が何かしらの実行によって disabled になったとしても、mainCamera から参照が途絶えることはありません。