AssetBundleManagerを使ったときのMultipleなsprite読み込み

AssetBundleManager
https://www.assetstore.unity3d.com/jp/#!/content/45836
が便利そうなので使いたい。
TexturePackerとかでPackしたMultipleなSpriteを読み込みたい。

でも、アセット読み込むのって
```
AssetBundleManager.LoadAssetAsync(string assetbubdleName, string assetName,System.Type type)
```
しかないですよね？
で、たぶん、読み込んだTexture2DをSpriteにするには、以下のようにするしかなさそう。

```csharp:LoadAssets.cs
//公式の同名サンプルの、最後のメソッドををいじったものです。
//わかりやすいようにメソッド名は同じにしておきます。
 protected IEnumerator InstantiateGameObjectAsync(string assetBundleName, string assetName)
 {
     
     AssetBundleLoadAssetOperation request =   
         AssetBundleManager.LoadAssetAsync(assetBundleName, assetName, typeof(Texture2D));
     if (request == null)
            yield break;
        yield return StartCoroutine(request);

    //画像を取得
    Texture2D texture = request.GetAsset<Texture2D>();
    Sprite img = Sprite.Create (texture, new Rect (0f, 0f, texture.width, texture.height), Vector2.zero);
}

```
でもこれだとmultipleな画像取り出しができない。
なので、以下のようにしてみる。
とりあえず、画像名:character-0.pngだとする。

1.TexturePackerが書き出すcharacter-0.tpsheetというファイルを
--1.拡張子を.txtにする
--2.名前を被らないようにファイル名-data.txtみたいに変えとく
で、character-0-data.txtという名前にして、AssetBundleに含める。

ちなみにTexturePackerが吐き出すのは、以下のようなテキスト。

```
#
# Sprite sheet data for Unity.
#
# To import these sprites into your Unity project, download "TexturePackerImporter":
# http://www.codeandweb.com/texturepacker/unity
#
# $TexturePacker:SmartUpdate:(ハッシュ値みたいなの）
#
:format=40300
:texture=charaters-0.png
:size=512x512
:pivotpoints=enabled
:borders=disabled

(画像ファイル名0);273;391;120;120; 0.5;0.5; 0;0;0;0
(画像ファイル名1);273;269;120;120; 0.5;0.5; 0;0;0;0
(画像ファイル名2);137;253;120;120; 0.5;0.5; 0;0;0;0
(画像ファイル名3);137;131;120;120; 0.5;0.5; 0;0;0;0
(画像ファイル名4);1;375;134;136; 0.5;0.5; 0;0;0;0
(画像ファイル名5);1;237;134;136; 0.5;0.5; 0;0;0;0
(画像ファイル名6);1;99;134;136; 0.5;0.5; 0;0;0;0
(画像ファイル名7);137;375;134;136; 0.5;0.5; 0;0;0;0
```

(画像ファイル名n)の後に入るのは、切り出しのときのx,y,w,h。

2.で、読み込みを以下のように変える。

```csharp:LoadAssets.cs
protected IEnumerator InstantiateGameObjectAsync(string assetBundleName, string assetName)
 {
     
     AssetBundleLoadAssetOperation request =   
         AssetBundleManager.LoadAssetAsync(assetBundleName, assetName, typeof(Texture2D));
     if (request == null)
            yield break;
        yield return StartCoroutine(request);

    //画像を取得
    Texture2D texture = request.GetAsset<Texture2D>();
    
    //テキストを取得
    AssetBundleLoadAssetOperation data = 
       AssetBundleManager.LoadAssetAsync(
          assetBundleName, 
          "character-0-data", //ほんとは外から設定
          typeof(TextAsset)
    );
    if (data == null)
      yield break;
    yield return StartCoroutine(data);

    float[] n = new float[4];

    TextAsset txt = data.GetAsset<TextAsset> ();
    string[] lines = txt.text.Split ('\n');
    for (int i = 0; i < lines.Length; i++) {
			if (lines [i].Contains ("ここに切り出したい画像名")) {
				string[] tmp = lines [i].Split (';');
				n [0] = float.Parse(tmp [1]);
				n [1] = float.Parse(tmp [2]);
				n [2] = float.Parse(tmp [3]);
				n [3] = float.Parse(tmp [4]);
				break;
			}
    }
    //これで切り出された画像が手に入る。
    Sprite trimImage 
       = Sprite.Create (texture, new Rect (n[0], n[1], n[2],n[3]), Vector2.zero);
}
```

ほんとは一個ずつじゃなくて、いっぺんに切り出すとして、
こんな冗長なやり方じゃなく、
スパッと一気に取得する方法があるような気がするのですが、
誰か教えてください。
ここ読め、とかでもいいので、、、。