先日公開したゲームのパフォーマンスが悪く、
色々と解決法を探っていたのですが、
その中で、SpriteAtlasなる機能を発見しました。
(以下は少し不正確かもしれませんが、)
UIを描画する際、Textureが異なるもの同士は
バッチング(描画処理をまとめて行う単位)が外れてしまうため、
結果バッチングの回数が増え、パフォーマンスに悪影響が出るらしいです。
そこで、SpriteAtlasという機能を使うと、
1つのTextureの中に複数の画像をまとめることができ、
バッチの数を減らせるようなのです。
ただ、この機能のぱっと見なんですが、
難しそう・・・
というか、めっちゃ面倒くさそう・・・。
これを見たとき、
「ここからここの範囲を指定して~」とか、
逐一そんな設定をしなきゃいけないのかなと
萎えてスルーしていました。
が、やってみたらそんな設定は微塵も必要なく秒殺でした。
設定するのはめっちゃ簡単です。
作成したSpriteAtlasに、使いたいSpriteを突っ込むだけで上のTextureができます。
勝手に上下左右反転を駆使し、隙間を縫っていい感じにパズルしてくれます。
参照するときも、もとのSpriteを参照すればOK。
まあ、今回のゲームの負荷については、
この部分はあまり影響なさそうだったのでノータッチなのですが・・・。
私にもできるんだ・・・と教えてくれた神記事はこちらです。
【Unity】SpriteをパックするSpriteAtlasの使い方 - 渋谷ほととぎす通信
SpriteAtlasはUI開発や2Dゲームに必須テクニックです。まだ使ったことがない方はぜひ本記事を読んでみてください。