Unity SpriteからTextureを切り抜き 透明ポリゴン
//
2Dゲームなんかを作る時に、一つの画像データに複数のイメージをまとめておいて、読み込む時に切り抜いて使用する事ありますよね。
その時、少し注意しないと、大きさが崩れます。特に、切り抜いた後その画像のサイズなんかを使う際には、意図した大きさと変わっている事で、配置バランスが崩れることもあるので注意ですね。
原因は、透明なポリゴンが画像の周りに含まれていること。
デフォルトでは、どうやら透明ポリゴンが画像の周囲を囲っている場合、上手くそれを無視して切り抜くそうで、結果的にtextureのサイズは一回り小さくなります。
Unityさんやっぱり賢いので、そういうところまで融通を聞かせてくれるんですね。
上のリンク先の方が解決してくれていますが、Sprite.Create()の第6引数に注意することですね。
// スライス Sprite tile = Sprite.Create(textureMap.texture, rect, pivot, this.tiledMap.TileWidth, 0, SpriteMeshType.FullRect);
FullRectを指定することによって、透明なポリゴンの部分も考慮して切り抜かれます。全てのマップのピクセルを統一している時などに、注意が必要です。