画面サイズの固定(アスペクト比の固定)

端末間での画面サイズを簡単に吸収できるコードを見つけたのでメモ。
Awake()内などに下記を記述。

// アスペクト比の固定処理
var camera : Camera = GameObject.Find(“Main Camera”).GetComponent(Camera);

var baseAspect : float = 960.0f / 640.0f;// 固定させたい値
var nowAspect : float = (parseFloat(Screen.height) / parseFloat(Screen.width));
var changeAspect : float = 0.0;

if(baseAspect > nowAspect){
changeAspect = nowAspect / baseAspect;
camera.rect = Rect((1.0f – changeAspect) * 0.5f,0.0f,changeAspect,1.0f);
}else{
changeAspect = baseAspect / nowAspect;
camera.rect = Rect(0.0f,(1.0f – changeAspect) * 0.5f,1.0f,changeAspect);
}

MiniJSON.csの使い方

MiniJSON.csファイルを取得してきましょう。
※以下からコピペかダウンロード(2014年5月はあった!)
https://gist.github.com/darktable/1411710

Assetsフォルダ>Pluginsフォルダ(無ければ作る、このファイル名である必要がある。)内にMiniJSON.csファイルを配置する。

利用したいJavaScriptのコードの先頭あたりに、
import System.Collections.Generic;// パースする時などに利用する。
import MiniJSON;
とインポートしておく。

var dict = Json.Deserialize(json文字列) as Dictionary.<String,System.Object>;
var i : int = dict["キー"];// 数値と分かっているものはこんな具合。
var str : String = dict["キー"] as String;// テキストの場合はこんな具合。
var dict2 = dict["キー"] as Dictionary.<String,System.Object>;// “キー”:{xxx}の要素をDictionary化。
var c : int = dict["キー"] as List.<System.Object>).Count;// ”キー”:[配列]の場合の数を調べる。
var dict3= (dict["キー"] as List.<System.Object>)[0] as Dictionary.<String,System.Object>;// 配列の要素内の”キー”:{xxx}の要素をDictionary化。

unity終了の手順

たとえば「android端末であった場合にリターンキーを押した時に終了させたい」場合は、スクリプトのUpdate内に

if(Application.platform == RuntimePlatform.Android){
  if(Input.GetKey(KeyCode.Escape)){
    input = INPUT_RETURN;
  }
}

などとしてinputに独自のキーコードを設定する。

メイン処理用のゲームオブジェクトでinputの値を確認して、INPUT_RETURNだった場合には

Application.Quit();
return;

を記述して終了させる。

 

別のコードの値を参照する方法

ヒエラルキー上の各ゲームオブジェクトにセットされているコードA(ACode)、コードB(BCode)があるとします。

AからBのコードの変数を参照しい時は、Bに書く変数をstaticとします。
static var isCheck : boolean = false;

Aのコードでは以下のように調べます。
flag = BCode.isCheck;