セキュリティ系の勉強・その他開発メモとか雑談. Twitter, ブログカテゴリ一覧
本ブログはあくまでセキュリティに関する情報共有の一環として作成したものであり,公開されているシステム等に許可なく実行するなど、違法な行為を助長するものではありません.

Unity SpriteからTextureを切り抜き 透明ポリゴン

//

tsubakit1.hateblo.jp


2Dゲームなんかを作る時に、一つの画像データに複数のイメージをまとめておいて、読み込む時に切り抜いて使用する事ありますよね。
その時、少し注意しないと、大きさが崩れます。特に、切り抜いた後その画像のサイズなんかを使う際には、意図した大きさと変わっている事で、配置バランスが崩れることもあるので注意ですね。

原因は、透明なポリゴンが画像の周りに含まれていること



デフォルトでは、どうやら透明ポリゴンが画像の周囲を囲っている場合、上手くそれを無視して切り抜くそうで、結果的にtextureのサイズは一回り小さくなります。
Unityさんやっぱり賢いので、そういうところまで融通を聞かせてくれるんですね。





上のリンク先の方が解決してくれていますが、Sprite.Create()の第6引数に注意することですね。

// スライス
Sprite tile = Sprite.Create(textureMap.texture, rect, pivot, this.tiledMap.TileWidth, 0, SpriteMeshType.FullRect);


FullRectを指定することによって、透明なポリゴンの部分も考慮して切り抜かれます。全てのマップのピクセルを統一している時などに、注意が必要です。