Unityでdot by dotの表示をする方法
Unityで2D機能がサポートされたのでいろいろと触ってみたけど
2Dスプライトをdot by dotで表示をする場合適切に設定をしてやらないとダメなので備忘録として書き記す。
まずゲームの2D描画用のカメラの設定を「Projection」から「Orthographic」に変更。
変更するとカメラのinspectorに「Size」という設定項目が表示される。
Cubeなどのプリミティブ型をScaleで設定した値そのままのピクセル数で画面上に表示をしたい場合は
「画面の高さ ÷ 2」で算出された値をサイズに設定してやればよい。
void Awake () { camera.orthographicSize = Screen.height / 2; }
スクリプトでやる場合Awakeで「画面の高さ ÷ 2」の値をsizeに設定してやればOK。
※このスクリプトの役割がこれだけなので削除してやったほうがいいかもしれないが。。。。
プリミティブ型を「1スケール値=1ピクセル」で表示する場合はこれでよいのだが2DSpriteの場合は 「Pixels To Units」という
指定ピクセル数を1Unityメートルで扱うようにする設定項目があるのでこいつを弄ってやる必要がある。
カメラのサイズを「画面の高さ ÷ 2」にした場合は「1スケール値=1ピクセル」として扱うようになるので
Spriteの「Pixels To Units」設定を同様に扱うように「1」の値を当てはめてやればいい。
例 iPhone4サイズでやる場合 縦960なので カメラサイズ:480 Pixels To Units:1
この設定の場合は1スケール値とピクセル数をイコールにする場合の設定なのでNGUIなどと一緒に利用する場合
UI部分とゲーム画面でScene上の見え方が違ってしまう。
同一にしたい場合はSizeを1に設定してやる必要があるので「Pixels To Units」をカメラサイズ1に対しての値に設定をしてやる必要がある
480:1 = 1:x x=480
となるので「Pixels To Units」を480に設定してやればdot by dotで表示することができる。