コガネブログ

平日更新を目標にUnityやC#、Visual Studioなどのゲーム開発アレコレを書いていきます

【Unity】【uGUI】SpriteAtlas に含まれているすべての Sprite を返す拡張メソッド

はじめに

var sprites = new Sprite[ spriteAtlas.spriteCount ];
spriteAtlas.GetSprites( sprites );

SpriteAtlas に含まれているすべての Sprite を取得する場合、
上記のような処理を記述すれば実現できますが
毎回配列を定義するのが大変だったので
すべての Sprite を戻り値で受け取れる拡張メソッドを作成しました

ソースコード

using UnityEngine;
using UnityEngine.U2D;

/// <summary>
/// SpriteAtlas 型の拡張メソッドを管理するクラス
/// </summary>
public static class SpriteAtlasExt
{
    /// <summary>
    /// スプライトの配列を返します
    /// </summary>
    public static Sprite[] GetSprites( this SpriteAtlas self )
    {
        var sprites = new Sprite[ self.spriteCount ];
        self.GetSprites( sprites );
        return sprites;
    }
}

使い方

var sprites = spriteAtlas.GetSprites( sprites );