Unity 手动编译 Reload脚本 减少等待时间

地址

Unity 手动编译 Reload 脚本

这是一个自定义reload domain工具,加快工作流,减少等待.测试版本是Unity2021,理论上来说2020以上都可.

Unity2021(2020还好)不知是哪个版本,明显感觉编译reload时间冗长🥱😪😯

在Unity中遇到的问题

在unity工作流中,修改脚本->编译脚本->reload domain(重载域)-> 进入play

通过区分assembly能加快编译,但是reload domain 却很慢,每次编译之后都要reload domain,而且进入播放前也会reload domain

示例:

0

写程序经常会Ctrl+s,一旦保存,就会重新编译,继而触发reload. 有时候会返回Unity编辑器,只是查看场景,并不想reload,会让我们漫长等待.

Unity有个Enter Play Mode Setting 可配置的进入运行模式 - Unity 手册

image-20221105210343196

禁用Reload Domain 可以快速进入播放模式.但是每次修改完脚本还是会重新reload. 还有就是对于静态数据如果没有重新reload 还是会保持之前的数据(建议不要禁用,真的很坑) 具体查看:https://docs.unity.cn/cn/2021.3/Manual/DomainReloading.html

当然有些通过禁用Auto refresh,使用ctrl+r,来手动刷新也可以,但是如果导入的是图片等其他资源,也要刷新.

所以还是要手动reload最可靠

如何解决频繁Reload

我们要做的就是,添加新脚本或者修改脚本后,经过确认无误之后,我们在reload,而且在进入 play模式,如果已经重载过域,不会二次reload

unity 提供了两个API EditorApplication.LockReloadAssemblies(); EditorApplication.UnlockReloadAssemblies();一个加锁,一个解锁.

配合 Enter Play Mode Setting 就可以大大减少时间.

效果图:

111

安装方法

  1. 直接下载脚本代码,然后放到Editor文件夹中
  2. 使用Unity PackageManager,add git地址

使用方法

  • 菜单栏Tools/Reload Domain/Enable Manually Reload Domain 开启手动reload
  • 需要手动reload 时候按下Ctrl+t快捷键,(或者直接点菜单)

更新日志

v1.0.1

如果开启,新建脚本或者导入插件的时候,都手动reload 一下

  • 每次进入play模式之前,会检查是否需要reload,已经reload就不用了,没有的话自动reload,这样能保证每次数据的正确性
v1.0.2
  • 添加了Unity Package
  • 避免了可能不小心手动多次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)

  • 8
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Unity是一款非常受欢迎的游戏开发引擎,其强大的功能和易用性吸引了大量的开发者。然而,有些人可能希望能够对Unity编译的游戏进行反编译,以了解游戏的结构、算法、资源等。 反编译是指将已编译应用程序转换为可读性较高的源代码的过程。然而,Unity游戏的反编译并不容易,因为Unity通过动态链接库(DLL)和脚本组件的方式来实现游戏逻辑。这使得反编译Unity游戏相对复杂。 目前市面上存在一些称为Unity编译工具的软件,它们旨在帮助开发者进行反编译工作。这些工具通常具有识别Unity游戏中的脚本和资源的功能,并尝试将其反编译为可读性较高的代码。但需要注意的是,由于反编译的复杂性,这些工具的反编译结果可能并不完全准确或可用。 此外,需要强调一点的是,使用Unity编译工具进行游戏的反编译是可能违反软件许可协议或道德规范的行为,特别是当游戏的开发者明确禁止了对游戏的反编译操作时。因此,在决定使用反编译工具之前,开发者应该审慎权衡其合法性和道德性,并确保遵守相关的法律法规和协议。 综上所述,Unity编译工具可以帮助开发者进行游戏的反编译操作。然而,可能存在一些限制和法律道德风险,因此使用这些工具需要谨慎。对于一般用户而言,保持对游戏的合法使用和尊重开发者劳动成果更加重要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值