Unity之C#代码自动更新原理总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Unity之C#代码⾃动更新原理总结
步骤:
1.创建C# dll 空⼯程TestCoreDll
2.添加库引⽤(该unity3d所需要⽤到dll,unity3d⼯程⽬录下Library\ScriptAssemblies中的库)
3.拷贝unity客户端代码⾄TestCoreDll⼯程⽬录下
4.点击菜单栏⽣成按钮下重新⽣成TestCoreDll,即⽣成TestCoreDll.dll⽂件
5.将TestCoreDll.dll备份⾄unity3d⼯程⽬录下,并修改器后缀名为TestCoreDll.bytes
6.使⽤BuildPipeline.BuildAssetBundle将TestCoreDll.bytes编译成对应的assetbundle,即TestCoreDll.assetbundle
7.使⽤程序集Assembly加载使⽤TestCoreDll.assetbundle中代码,⾄此C#代码⾃动更新原理结束
代码⽚段:如下
⽣成dll⽂件:
msbuild "%targetProjectName%.csproj" /p:Configuration=Release
/p:DefineConstants="TRACE;UNITY_5;USE_ANIMEVENT_INT_PARAMETER;UNITY_ANDROID;LOAD_DLL" /m /nologo /clp:ErrorsOnly /flp1:logfile=errors.txt;errorsonly
⽣成assetBundle⽂件
BuildPipeline.BuildAssetBundle(obj, null, "Assets/StreamingAssets/ClientCore.assetbundle", BuildAssetBundleOptions.CollectDependencies, target);
使⽤程序集加载引⽤代码:
WWW www = new WWW(path);
AssetBundle bundle = www.assetBundle;
TextAsset asset = bundle.LoadAsset("TestCoreDll", typeof(TextAsset)) as TextAsset;
System.Reflection.Assembly assembly = System.Reflection.Assembly.Load(asset.bytes);
Type script = assembly.GetType("TestScript");
if (script != null)
{
gameObject.AddComponent(script);
}。

相关文档
最新文档