コンテンツの保護
アセットバンドル FAQ

アセットバンドルにスクリプトを含める

アセットバンドルにはスクリプトを TextAsset として含めることができますが、その場合実際に実行できるコードになりません。もしアプリケーションで実行できるコードをアセットバンドルに含めたい場合は、アセンブリにプリコンパイルする必要があり、また Mono Reflection クラスでロードする必要があります(注意: Reflection は iOS では利用できません)。アセンブリは普通の C# IDE (例えば MonoDevelop、Visual Studio )または Mono/.NET コンパイラを使用して任意のテキストエディターで作成することができます。

注意: Windows Store Apps と Windows Phone では、アセットバンドルからスクリプトをロードすることはできません。

//c# example
string url = "http://www.mywebsite.com/mygame/assetbundles/assetbundle1.unity3d";
IEnumerator Start () {
    while (!Caching.ready)
        yield return null;

    // Start a download of the given URL
    WWW www = WWW.LoadFromCacheOrDownload (url, 1);

    // Wait for download to complete
    yield return www;

    // Load and retrieve the AssetBundle
    AssetBundle bundle = www.assetBundle;

    // Load the TextAsset object
    TextAsset txt = bundle.Load("myBinaryAsText", typeof(TextAsset)) as TextAsset;

    // Load the assembly and get a type (class) from it
    var assembly = System.Reflection.Assembly.Load(txt.bytes);
    var type = assembly.GetType("MyClassDerivedFromMonoBehaviour");

    // Instantiate a GameObject and add a component with the loaded class
    GameObject go = new GameObject();
    go.AddComponent(type);
}

コンテンツの保護
アセットバンドル FAQ