Unityの備忘録
これまでUnity(とC#)を避けていたが、機会があって触り始めたので、いくつか詰まったところを備忘録として残す。
GameObjectとスクリプト
GameObjectにアタッチされたスクリプトもコンポーネントとして取り扱われる。そのためスクリプトで定義したクラスのインスタンスは、GameObjectのメンバではないことに注意する。スクリプトのクラスのメンバにアクセスしたい時は
GameObject.GetComponent<ClassName>().hoge();
でアクセスする。
enumの共有
問題
enumで定義したステータスなどを複数のオブジェクトで使いたい時、定義をスクリプトの中に書くと、クラスの外へ出したとしてもグローバルにはならず(GameObjectの要素になってしまうため?)、他スクリプトからアクセスできない。
解決策
一旦MonoBehaviourを継承したenumを定義するClassを作り、これを継承する。インターフェースでできるならそちらのが楽だと思う(できるんだろうか)。
リファレンス
Unityのリファレンスとにらめっこするのもいいが、基本的な内容ならマニュアルを読んだほうが早い。(正直言って、リファレンスだけではGameObjectとスクリプトの関係を理解するのは難しかった。)