【unity】GameManagerをFindしようとして出来なかった時のお話

近頃はunityを使ってゲーム作りをしています。

GameManagerとGameObjectは若干違うようで。
そのときに躓いたので、記載します。

結論

宣言

public GameManager gameManager;

コード

gameManager = GameObject.Find("GameManager").GetComponent<GameManager>();

解説

コードの部分を少し解説。

当初、

gameManagerobj = GameManager.Find(“GameManager”);

これでいけるのではと思っていたのですが、エラー。
GameManagerでFindが使えないようになっています。

なので、GameObjectでFindして、GetComponentすることで、
GameManagerを取得します。

GameManagerって厄介ですね。
あえて作る必要はないのかもしれないと思う今日この頃。

半年経過し、見直して追記

当初書いたのが2022年9月

そして、2023年5月にふとこの記事を見直しました。

ただの理解不足ですね。

コード

gameManager = GameObject.Find("GameManager").GetComponent<GameManager>();

赤と緑で機能が分かれています。

GameObject.Find(“GameManager”)でヒエラルキー内のGameManagerを探す。
.GetComponent<GameManager>();でアタッチされたGameManagerという名前のC#を取得する。

の2段構えになっているだけ。

半年Unity触っていたら、わかってくるもんですねぇ。

コメント

タイトルとURLをコピーしました