Unityでコード書いてて必ずはまることですが、SetActiveでfalseするとFindできなくなるので、再度trueできなくなります。
ゼビウスではエリアの切り替えを、全体ではfalseにして、それぞれ使いたい面だけtrueにしてます(1面実行中に2面の地上敵が出てこないように)
そういう場合、自身はfindできませんが、親のtransformからなら検索できます。
例えば、
Cabvas MenuPanel
という親子関係があった場合、
GameObject.Find("MenuPanel").SetActive(false);
としてしまうと、
GameObject.Find("MenuPanel").SetActive(true);
これは失敗しますが、次のように親から辿ればtrueにできます。注意する点はtransformからFindしたものもtransformなので、activeを制御するためには、gameObjectとして取り出す必要があります。
GameObject.Find("Canvas").transform.Find("MenuPanel").gameObject.SetActive(true);
uGUIで、パネルを使って、ウインドウ切り替えする場合も重宝です。前はalphaを0%にして消してましたが、focusは残るので、被ってるとボタンが押せなくなります。