Unity3d框架篇(7):脚本热更c#一样也能玩出花
本系列基于:BDFramework 、Unity3D 2018.4.0BDFramework:Simple! Easy! Beautiful! This is a powerful Unity3d game workflow!
框架地址:
GayHub:yimengfan/BDFramework.Core,
码云 :yimengfan/BDFramework.Core欢迎赏星。
第九艺术 、第十艺术讨论群 : 606667651
0x001:前言
市面上有很多热更新方案Lua、Js。然而笔者早就立下Flag:0学习成本。
所以基于C#热更库ILRuntime(这个启蒙于李总的L#)做了一套工作流。打造0学习成本,快速开发热更项目。
效率:很多同学关心运行效率,实际项目中的数据,C#热更跟Lua热更相比,在函数调用,访问属性等效率上要高于Lua,纯数值计算上低于Lua。但两者处于一个数量级。
笔者综合比较开发效率,学习成本,调试查错效率,以及笔者对C#虚拟机比较熟。
所以最终选择哪个还是取决于你们自己咯~
ILRuntime库:Ourpalm/ILRuntime
0x010:使用流程
很尴尬,因为0学习成本,所以没啥好说的。只能先介绍工作流怎么用的,后面介绍一点工具的开发~
1.ILRuntime作者,给出一套工作流:
新建一个.csproj,然后将热更代码写在这个工程中。每次写完运行需要手动build一下,.dll会生成到unity目录下。最后运行unity,就是直接执行这个热更dll。2.对于以上的工作流,笔者觉得还是不够舒爽:比如每次build完Dll、unity会把pdb2mdb,这个会花一点时间。其次,每次都需要手动build一下..等等
于是笔者制定了一个工作流,并开发相关工具.
流程如下:
i)开发跟平时一样,将需要热更的目录,加上@hotfix
ii)打包时候,只需要使用如下编辑器,就能build出 hotfix.dll
iii)然后勾选全局启动,如下:
怎么样,是不是很舒爽?
0x011:实现原理
当然,0学习成本也是吹牛拉。实际上只能减少学习成本~
使用这套工作流需要理解整个流程:
1.整个代码工程其实还是分为:主工程,热更工程
2.主工程: 是由unity3d的dll,第三方插件的dll和cs文件,BD框架内一部分,还有自己写的一部分不适合热更的业务逻辑
3.热更工程:是基于以上主工程,所有的cs文件
BD框架,编译DLL的流程如下:
首先我们先编译出主工程Base.dll,依赖DLL:Unity3d的dll + 第三方插件 +非热更逻辑
然后再搜集到所有带有 @hotfix的标签的.cs文件, 编译出HotFix.dll
所以编程过程中,谨记以下两点:
1.主工程中不要访问,@hotfix 中的类 对象等...
2.@hotfix 中代码不要太浪,尽量不要用高级特性,反射等...
3.慢慢去ILR群问吧
所以很尴尬啊,因为打造的是0学习成本,所以都没啥说的,只能谈谈怎么使用编辑器。
下一篇,我们讲讲怎么做自己的编译服务,提高下逼格~ 很棒的系列文章,期待持续更新 666大佬 很棒很棒先学习下 楼主,为什么我下载的PosePlus_TBS,里面茫茫多的语法错误? unity 2017,.net 4.6 了解下 巧了,我还真是unity2017和.net4.6,难道哪里配置不对? 这个就不清楚了,TBS项目是本地跑通过 才提交的, 看上去不错哦
页:
[1]