-
-
Notifications
You must be signed in to change notification settings - Fork 381
limit
walon edited this page May 20, 2022
·
5 revisions
不在限制事项中的特性都是huatuo支持。请不要再问huatuo是否支持某个功能。
- 支持2019-2022全系列版本,但不是每个小版本都支持。具体请查看现在支持的Unity版本。
- 支持 .net standard 2.0,但要求打主工程包用.net standard,打热更新dll用.net 4.x。原因是unity使用.net standard发布后,会自动剥去.net standard,导致类型找不到。
- 无法创建出普通AOT泛型(delegate、Nullable、数组(包括多维)不受限制,热更新泛型也完全不受限)的热更新非枚举值类型的实例化类型的实例。 例如不支持List<HotUpdateValueType>但支持List<int>、List<HotUpdateClass>和List<HotUpdateEnum>。 具体原因见AOT泛型限制及原理介绍。这个会在7月份版本比较彻底地解决,此后不再有限制。
- 暂时不支持返回自定义值类型的默认async task。async void及原生值类型如int及枚举及class类型不受限制。原因是编译器会为async默认生成 AsyncTaskMethodBuilder<T>的泛型类实例化,如果像ETask那样使用自定义Task及AsyncTaskMethodBuilder,则不受限制。原生async这个限制后续版本会解决。
- 注意使用link.xml或者代码引用的方式避免unity裁减代码。避免开发期能调用,发布后却找不到函数的错误。我们后续会提供默认模板。
- 不支持delegate的BeginInvoke, EndInvoke。纯粹是觉得没必要实现。
- 在资源中挂载热更新脚本需要在打包时做少量特殊处理,参见MonoBehaviour相关工作流
- 暂不支持增量式gc。由于时间紧凑,来不及仔细处理增量式gc的memory barrier细节。这个问题很快会解决。
- 暂时不支持打包后真机的c#源码调试,但能打印错误堆栈(只能精确到函数),也可以在Build出的Debug工程中跟踪调试。Editor下开发期调试使用平时的mono调试就可以了。