unity3d進行腳本資源打包加載

本文記錄如何經過unity3d進行腳本資源打包加載app

一、建立TestDll.cs文件ui

public class TestDll : MonoBehaviour {
    void Start () {
        print("Hi U_tansuo!");
    }
}url

二、生成dll文件命令行

   (1)使用vs打包3d

  (2) 使用mono打包component

    (3) 命令行打包 mac下(親測):  /Applications/Unity/Unity.app/Contents/Frameworks/Mono/bin/gmcs -r:/Applications/Unity/Unity.app/Contents/Frameworks/Managed/UnityEngine.dll -target:library 腳本路徑ip

                        win下(未試過):mcs -r:/Applications/Unity/Unity.app/Contents/Frameworks/Managed/UnityEngine.dll -target:library 腳本路徑資源

三、更改文件後綴get

      相當重要一步  更改上一步生成的TestDLL.dll 爲 TestDLL.bytes  不然 打包加載會錯string

四、使用 BuildPipeline.BuildAssetBundle進行打包 資源爲 TestDll.unity3d

五、加載

    IEnumerator Test()    {                string url="file://"+Application.dataPath+"/TestDll.unity3d";        print(url);          WWW www = WWW.LoadFromCacheOrDownload (url, 1);    // Wait for download to complete    yield return www;            // Load and retrieve the AssetBundle    AssetBundle bundle = www.assetBundle;        TextAsset txt = bundle.Load("TestDll", typeof(TextAsset)) as TextAsset;        print(txt.bytes.Length);    // Load the assembly and get a type (class) from it    var assembly = System.Reflection.Assembly.Load(txt.bytes);    var type = assembly.GetType("TestDll");    // Instantiate a GameObject and add a component with the loaded class        gameObject.AddComponent(type);    }

相關文章
相關標籤/搜索