unity3d c#热重载-边运行边改代码
Posted 编程之力
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity3d c#热重载-边运行边改代码相关的知识,希望对你有一定的参考价值。
MMO项目15G,采用C#热更
增加一个C#文件,编译时间需要1分15秒
调试一次的时间成本=引擎启动+资源加载+编译时间≈1分35秒
使用了热重载之后,减少到5秒,效率接近20倍
视频讲解观看
技术原理:
利用 Unity Edtior 编译 cs文件,生成dll
运行时通过反射,为方法重新分配指针
为了能够在苹果机上运行,代码运行的方式分为两种
开发环境下-反射热重载
发布模式使用-ILRUNTIME
实操:
如果项目条件允许建议大家使用ET6的框架,自带了现在的方案
但需要使用U3D2020+VS2022
由于我们项目没有使用ET6的框架,加上项目版本比较老(UNITY3D2017),所以抽离了热重载代码
1:类库项目-编写热重载代码
编写代码组件,输出HelloWorld
2:利用 Unity Edtior 编译 cs文件,生成dll
3:运行时加载 dll
看到Log “Hello World”
4:修改 “Hello World” ->“Hot Reload HelloWorld”
返回第3步
5:方法重载(完成)
详情:
类库项目,放在UNITY外边,这样就不会成为UNITY资源,所以不会触发文件检查
U3D运行时编译代码
总结:
使用ET6的框架,集成了很多功能
假如只需要热重载功能可以下载这个源码
需要源码下载见B站视频
以上是关于unity3d c#热重载-边运行边改代码的主要内容,如果未能解决你的问题,请参考以下文章
Unity3D热更新之LuaFramework篇[05]--Lua脚本调用c#以及如何在Lua中使用Dotween
Unity3D热更新Unity3D 零成本高性能的C#的热更新框架:HybridCLR