Unity架构之域重新加载

域重新加载在Unity中默认启用,用于在进入运行模式时重置脚本状态,但可能影响编辑器性能。禁用后,需要手动处理静态字段和事件处理程序的重置。静态字段需用[RuntimeInitializeOnLoadMethod]属性重置,静态事件处理程序需显式注销再注册。禁用域重新加载可加快进入运行模式速度,但也增加了管理脚本状态的复杂性。

域重新加载

域重新加载将重置脚本状态,默认情况下会启用域重新加载。此功能为您提供了全新的脚本状态,并会在您每次进入运行模式时重置所有静态字段和已注册的处理程序。这意味着每次在 Unity Editor 中进入运行模式时,您的项目就会采用与在构建后首次启动时非常相似的方式开始运行。

域重新加载需要一定的时间,并且随着项目中脚本的数量和复杂性的增加,需要的时间也会增加。如果需要很长时间才能进入运行模式,那么对项目进行快速迭代将变得越来越困难。因此,Unity 提供了关闭“域重新加载”的选项。

禁用域重新加载

To disable Domain Reloading:

  1. Go to Edit > Project Settings > Editor
  2. Make sure Enter Play Mode Options is enabled.
  3. Disable Reload Domain

禁用域重新加载后,进入运行模式的速度会更快,因为 Unity 不会每次都重置脚本状态。但是,这种情况下就需要由您自己来确保在进入运行模式时脚本状态会重置。为此,需要添加代码以便在运行模式启动时重置脚本状态。

禁用域重新加载后,在您更新或重新导入脚本时,Unity 仍会根据自动刷新设置来刷新脚本状态。

修改脚本以确保在禁用域重新加载时正确执行:

为确保脚本状态在运行模式下正确重置,需要对脚本中的静态字段和静态事件处理程序进行调整。

静态字段

禁用域重新加载后,代码中的静态字段的值不会自动重置为其原始值。需要添加用于明确执行此操作的代码。

下面的代码示例具有一个静态计数器字段,在用户按下 Jump 按钮时该计数器会递增。启用域重新加载后,在进入运行模式时,计数器自动重置为零。禁用域重新加载后,计数器不会重置,而是会在进入和退

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值