くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

Unity初心者がJavascriptでの共通的な値や処理の扱いを考える

Unityを初めてからAndroidアプリを3本作ってみた。
よくわからないことが多いけど、ゲームのルールなど共通的なルールについてだいぶまとまってきたので、備忘録的に整理してみる。

UnityもJavascriptも初級者未満の初心者なので、ほかにいい方法があれば、ぜひ教えて下さいm(__)m

UnityのJavascriptの特徴として以下のことがあると思っている

  1. 同名のファイル名をつけることができない
  2. ファイル名がクラス名とした、暗黙的にMonoBehaviorクラスを継承したクラスを生成しているっぽい
  3. staticをつければ、クラス名をつけて別ファイルからアクセスが可能

定数はstaticをつけて独立したファイルで定義

staticをつければアクセス可能なため、定数を管理するjsファイルを作成し、そっちで管理するのがよい。

自分の環境では「Const.js」というファイルを作って、以下の様な感じに定数をまとめている。

#pragma strict

//CONST
static var CONST_TITLE : String = "App Title";
static var CONST_INIT_TIME : float = 10;

参照するときは以下な感じ。

#pragma strict

private var time : float;

function Start () {
    Debug.Log(Const.CONST_TITLE);
    time = Const.CONST_INIT_TIME;
}

共通処理も別ファイルで管理

staticをつければアクセス可能になるのは、フィールドだけでなく、functionも同じ。
なので、共通的な処理も別ファイルにまとめ、staticをつけて定義するのがよい。

自分の環境では、「Common.js」というファイルを作って、以下の様な感じに定数をまとめている。

#pragma strict

static function init() {
    ・・・・
}

参照するときは以下な感じ。

#pragma strict

private var time : float;

function Start () {
    Common.init();
}

staticを使った共通化で、クローンコードは減ったけど。。。

設計的にはイケてない気がする。。。
設計系の話って、あまりネットにない感じなんでしょうか?
デザインパターン的なのがあれば、幸せになれるのですが、
とりあえず今はこんな感じです。

以上!!!

[PR] こんなアプリを作ってます

マグロ探し

大量の鯖(サバ)の中から1匹の鮪(マグロ)を探す、シンプルなタッチゲーム☆彡
反射神経、周辺視野、正確なタッチが求められるカジュアルゲームです♪

Google Play

f:id:wannabe-jellyfish:20150214232203p:plain

ボコボコリンリン♪

キャラクタを殴ってつぶしたり、釘でぶすぶす刺したりできるストレス発散ゲーム♪
いろんなキャラをボコボコにして、日頃の恨みを解消!!

Google Play

f:id:wannabe-jellyfish:20150214232225p:plain

四色漢字

赤・青・黄・緑の4色のボタンを、文字の色または漢字の読みの通りに押していく脳トレゲーム!
ストループテストという前頭葉の注意機能の検査をゲームらしくしてみました♪

Google Play

f:id:wannabe-jellyfish:20141006225511p:plain

参考にしたサイト様