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

デジタルフロッグ

Unityのアプリの開発をしながらいろいろと忘れないための備忘録でございます。

AssetBundleをサーバーから取得

    IEnumerator Loadbundle()
    {
        string url = "http://hogehogehogehoge/hoge";
        var www = new WWW(url);
        yield return www;
        var assetBundle = www.assetBundle;
        var prefab= assetBundle.LoadAsset<GameObject>("Object");
        GameObject obj = (GameObject)Instantiate( prefab );
        obj.name = obj.name.Replace( "(Clone)", "" );
    }
    

とりあえずこんな感じでとりたいものはとれます。ただ、Materialを使用しているものをAssetBundleを落としてきて使おうとするとShaderの設定がたまらないことになってしまっている事があります。

なのでそういう時は自身でスクリプトから直してあげてください。

ちなみに自分はSpineを使いたかったのですが、最初ピンクの■集合体がうごうご動いている状態でしたので

        var material = assetBundle.LoadAsset<Material>("Material_Name");
        material.shader = Shader.Find( "Spine/Skeleton" );

これで解決しました。パーティクルを落としてきて使うときなどはまたそれはそれに合わせてShader.Findで変更してあげる必要がありそうです。