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メートルで扱うようにする設定項目があるのでこいつを弄ってやる必要がある。

f:id:YuukTsuchida:20140216180047p:plain

カメラのサイズを「画面の高さ ÷ 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で表示することができる。