10
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Unity】【基礎】2Dプロジェクトにおける座標系について

Last updated at Posted at 2019-10-12

#調べたいこと
Unityの2Dプロジェクトのウィンドウサイズと画像サイズの関連性がわからない。
①下図は、ウインドウサイズをStandalone(1024 * 768)に同サイズの背景(緑)を表示させているが、背景のほうが小さく表示されてしまう。
②座標系も正規化されているのか、カメラに映る座標の範囲が、(X : -7 ~ 7, Y :-2.5 ~ 2.5)となっている。
③2Dゲームでは,座標をドット単位で扱うにはどうすればよいか。

画像の場合

##Unity(2D)の座標について
Unityの描画範囲はカメラの領域に依存するため、具体的な範囲は存在しない。
デフォルトでは、Main CameraのSizeが5なのでY軸は±5の範囲が描画される。
X軸は1024 * 768であれば、 5 * 1024 / 768 = 6.666666になる。
よってカメラの描画範囲は(X : -6.66 ~ 6.66, Y : -5 ~ 5)

pos.png

##画像のサイズについて
calc2.png
画像のサイズは画像のインスペクタの「Pixels per Unit」で決まる。
この値はデフォルトでは「100」になっていて、サイズを1/100して取り込まれる。
つまり、1024 * 768の画像はUnity上では (X : -5.12 ~ 5.12, Y : -3.84 ~ 3.84)
これが**カメラの描画範囲(X : -6.66 ~ 6.66, Y : -5 ~ 5)**より小さいのが原因で、カメラの背景色(青)が映ったのだ。

##ドットバイドットの描画
Unityでの座標をドット単位で扱うには、以下の2つのステップを行う。
①カメラの描画範囲を変更する。
 「Main Camera -> Size」を (1024 * 768)の高さの半分を設定する。 768 / 2 = 384
②インスペクタの「Pixels per Unit」を「100」から「1」にする。
 これにより画像の1ピクセルがUnityにおける座標の1となる。
ちなみにこのように単位を合わせることをドットバイドットと呼ぶ。
(ドット絵といわず、2Dゲームであれば全てこれを適応してもよい気がするが、どうなんだろうか。)

#参考サイト
ドット絵ゲームをunityで作るときに押さえておきたいポイント

10
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?