alphakaz’s blog

個人的備忘録

Unity2Dでピクセルの隙間をなくす

環境

Unity 2021.3.31f1

素材元

https://pipoya.net/sozai/assets/map-chip_tileset32/

問題

UnityのTilemapを使うと、ピクセル間に隙間ができることがあります。

この問題は、カメラの解像度に対してマップチップのサイズが合っていないために発生します。特にカメラ側の解像度が高いと問題になります。

 

カメラの解像度を自分でいい感じに調整するのも面倒ですし、マップチップのアセット側を調整したりアンチエイリアスを切るのも、それほどスマートな解決方法とはいえません。

また、軽くググって出てきたこれらの方法では、今回の問題は解決しませんでした。

 

解決策

こういうときはPixel Perfect Cameraを使います。

docs.unity3d.com

これはカメラの設定をピクセル単位で調整できるコンポーネントで、つまるところ、カメラの解像度がドットに一致するように簡単に調整することができます。

 

実践

PixelPerfectCameraコンポーネントをメインカメラにアタッチし、マップチップテクスチャのPixels Per Unit(1単位のピクセル数)と同じ数字(ここでは32)を、PixelPerfectCameraのAssets Pixels Per Unitに入れてみましょう。

GridコンポーネントやTilemapRendererコンポーネントの数字を操作していない限りは、以下のように隙間がなくなるはずです。