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);    }

相关文章
相关标签/搜索