Skip to content
walon edited this page May 29, 2022 · 5 revisions

限制和注意事项

限制

不在限制事项中的特性都是huatuo支持。请不要再问huatuo是否支持某个功能。

  • 目前仅支持2020、2021系列,而且不是每个小版本都支持。2019版本会在晚些时候支持。具体请查看现在支持的Unity版本
  • 支持.net standard 2.0和.net 4.x(.net framework),但即使主工程包用.net standard,编译热更新dll仍然要用.net 4.x。原因是unity使用.net standard发布后,会自动剥去.net standard,导致类型找不到。
  • 无法创建出普通AOT泛型的热更新struct类型实例化类型的实例。 例如不支持List<HotUpdateValueType>但支持List<int>、List<HotUpdateClass>和List<HotUpdateEnum>。但delegate、Nullable、数组(包括多维)不受限制,热更新泛型也完全不受限。 具体原因见AOT泛型限制及原理介绍。这个会在6月份版本彻底地解决,此后不再有限制。
  • 暂时不支持返回热更新struct类型的默认async task。async void及原生值类型如int及枚举及class类型不受限制。原因是编译器会为async默认生成 AsyncTaskMethodBuilder<T>的泛型类实例化,进而有AOT泛型限制。如果像ETask那样使用自定义Task及AsyncTaskMethodBuilder,则不受限制。原生async这个限制后续版本会解决。
  • 不支持delegate的BeginInvoke, EndInvoke。纯粹是觉得没必要实现。
  • 支持在资源中挂载热更新脚本,但需要在打包时做少量特殊处理,参见MonoBehaviour相关工作流
  • 暂不支持增量式gc。由于时间紧凑,来不及仔细处理增量式gc的memory barrier细节。大约在9月份支持。
  • 暂时不支持32位程序。大约在7月份会支持。

注意事项

  • 注意使用link.xml或者代码引用的方式避免unity裁减代码。避免开发期能调用,发布后却找不到函数的错误。我们后续会提供默认模板。
Clone this wiki locally