渋谷ほととぎす通信

新しいこと、枯れたこと問わず大庭が興味を持ったものを調査、生活の効率を求める完全趣味の技術ブログ

Unityのスプライトの単位についてまとめておく


UnityでSpriteRendererを使用して2Dを扱う際、必要知識としてスプライトの単位についてまとめておきます。

Unityの単位はメートル

基礎の基礎から

f:id:esakun:20190604235907p:plain:w250
X, Y, Zのスケールが1のこの立方体は、1立方メートルの立方体ということになります。

また、ポジションが(1, 0, 0)であれば、 原点から1メートルX座標を移動した位置ということになります。

2Dではどうなるのか?

ここからが本題です。

結論から示すと、 単位 = PixelPerUnitの数値 です。

f:id:esakun:20190529005657p:plain

PixelPerUnitは、各テクスチャに設定される値で、テクスチャごとに設定値を変えることができます。

デフォルト100なので、ポジションが(1, 0, 0)であれば原点からX座標100ピクセル移動した位置ということになります。

f:id:esakun:20190529005605p:plain
例えば上記のように幅200×100ピクセル PixelPerUnitが100の画像を2枚用意します。

f:id:esakun:20190529010152p:plain

それぞれの位置を(0, 0, 0)、(0, 1, 0)とすれば、このようにぴったりとくっついた状態になります(当たり前ですが)。

まとめ

2DではPixelPerUnitがとても大事になります。
前述しましたが、PixelPerUnityはテクスチャごとに設定を変更することができます。経験上1プロジェクトで扱うPixelPerUnitはすべて揃えた方がオペミスや事故率が下がると思います。