UnityのJSで、どこまでOOP的手法が出来るか試しています。
結論、
『意外に出来る子』
まあ、C#なので、当たり前か。C#、C++からUnityに入った方には物足りないかも知れないけど、Flasherからすれば、充分ですな。
enum、組み込み型配列、メソッドのオーバーロードなど、AS3にない部分もあります。
使えるOOP手法
- 継承 extends
- インターフェース interface, implements
- 修飾子 public, protected, private, internal
その他できること
- 静的変数、静的関数 static var , static function
- メソッドのオーバーロード (同名メソッドで、複数の引数タイプを用意出来る。)
- 組み込み型配列 例) int, Vector3
- 多次元配列は int[,] ←こんな感じ
- 列挙型 enum
- スコープの範囲:AS3と大体同じ。メソッド終了までスコープが続く。(個人的には好きじゃない)
- Genelicクラスも使えるよ
使えない?かも。方法有ったら教えてください。
- MonoBehaviourではコンストラクタは使えない?
- Objectクラスでは、コンストラクタがあるが、MonoBehaviourでは、使えない。
- Singletonには、AS3と同じ手法を使う。
- MonoBehaviourでは使えないだけで、Objectでは、普通にprivateコンストラクタもつかえる。
- ScriptableObjectを継承すれば、コンストラクタが存在する。
- MonoBehaviourでは、Awake()を使う。
- 定数 const はないっぽい。
- 名前空間は使えない? C#の名前空間からimportは出来る。
- C#のdelegateは定義できないかも。c#で定義したデリゲートを使うことは出来た。