読者です 読者をやめる 読者になる 読者になる

(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

Unity 2DのSpriteをまとめて使う【Unity】

Unity

このエントリーをはてなブックマークに追加

始めに

Unity2Dで画像を表示する時にはSpriteを使います。

このSpriteをまとめる方法とまとめたSpriteをどう使うかのご紹介!


Spriteをまとめる

Unity自体にSpritePackerという機能があり、

これでSpriteをまとめる事は出来るのですが、ちょっと使いにくい……


という事で、ケットシーウェアさん製の簡易SpritePackerを使わせて頂いております。



他にもテラシュールウェアさんにて、TexturePackerを使ってまとめたテクスチャを

Spriteとして使うアセットも公開されております。



実際にSpriteをまとめると、


f:id:kan_kikuchi:20150427071523p:plain


これが


f:id:kan_kikuchi:20150427071533p:plain


こうなります!


まとめたSpriteを使う

Unityエディタ上で使う場合は、任意のスプライトを

ドラック&ドロップすればそのまま使えます。


問題はコード上で任意のSpriteを取り出す方法です。

この記事の本題はこれだったりします。


以下はResources/AtlasフォルダにあるSpriteAtlasから、Cloudというスプライトを取り出すコードです。

Sprite[] sprites      = Resources.LoadAll<Sprite>("Atlas/SpriteAtlas");
Sprite   cloudSprite  = System.Array.Find<Sprite>(sprites, (sprite) => sprite.name.Equals("Cloud"));


Resources.LoadAllでまとめたスプライトのパスを指定し、まとめられたSprite全てを読み込みます。

その後、 System.Array.Findでスプライト名を指定し検索する事で、

任意のSpriteを取り出す事が出来ます。