地址
这是一个自定义reload domain工具,加快工作流,减少等待.测试版本是Unity2021,理论上来说2020以上都可.
Unity2021(2020还好)不知是哪个版本,明显感觉编译reload时间冗长
在unity工作流中,修改脚本->编译脚本->reload domain(重载域)-> 进入play
通过区分assembly能加快编译,但是reload domain 却很慢,每次编译之后都要reload domain,而且进入播放前也会reload domain
示例:
写程序经常会Ctrl+s
,一旦保存,就会重新编译,继而触发reload. 有时候会返回Unity编辑器,只是查看场景,并不想reload,会让我们漫长等待.
Unity有个Enter Play Mode Setting 可配置的进入运行模式 - Unity 手册
禁用Reload Domain
可以快速进入播放模式.但是每次修改完脚本还是会重新reload. 还有就是对于静态数据如果没有重新reload 还是会保持之前的数据
(建议不要禁用,真的很坑) 具体查看:https://docs.unity.cn/cn/2021.3/Manual/DomainReloading.html
当然有些通过禁用Auto refresh
,使用ctrl+r
,来手动刷新也可以,但是如果导入的是图片等其他资源,也要刷新.
所以还是要手动reload最可靠
我们要做的就是,添加新脚本或者修改脚本后,经过确认无误之后,我们在reload,而且在进入 play模式,如果已经重载过域,不会二次reload
unity 提供了两个API EditorApplication.LockReloadAssemblies();
和 EditorApplication.UnlockReloadAssemblies();
一个加锁,一个解锁.
配合 Enter Play Mode Setting
就可以大大减少时间.
效果图:
Tools/Reload Domain/Enable Manually Reload Domain
开启手动reloadCtrl+t
快捷键,(或者直接点菜单)如果开启,新建脚本或者导入插件的时候,都手动reload 一下
Unity 关闭脚本编译 - 知乎 (zhihu.com)
Misaka-Mikoto-Tech/UnityScriptHotReload: HotReload Unity C# script without exit play mode and keep the running context unchanged (github.com)
【Unity】引擎编译时间优化 - 知乎 (zhihu.com)