Home

Awesome

UnityScriptHotReload

本仓库可以实现运行中无感重载C#代码

主要功能

Unity开发者经常需要在Editor运行起游戏后调试代码,并临时修改代码测试效果,但Unity自身的运行时重新编译C#代码并重载脚本会造成逻辑中断,因此并不可用。
本仓库解决了这个问题,可以实时修改代码并无缝使用新代码的逻辑继续运行,并保持内存中的数据和线程上下文均不改变, 而且可以在源文件原地下断点。

安装步骤

使用步骤

  1. 点击Play按钮启动游戏,测试中发现逻辑错误,假设此场景不容易重现,您并不想停止play修改代码后再重新运行
  2. 直接修改C#代码
  3. 点击菜单 【Tools/HotReload/立即重载 (Play时有效) #R】 或按 Shift+R, 片刻后若控制台出现 热重载完成 提示则表示已成功重载
  4. 继续测试,逻辑已被修改
  5. 发现逻辑依旧有错误,重复步骤 2~4

功能及限制

测试用例使用步骤

测试用例文件为 Assets/HotReload/TestCase/Scripts/TestDllA/TestDllA_Main.cs

▶ 执行效果

最佳实践

TODO

实现原理

Patch原理

断点问题

调试 Patcher.exe

一般用户可忽略此段

相关截图

第三方库

联系方式