Skip to content

Commit

Permalink
更新版本
Browse files Browse the repository at this point in the history
  • Loading branch information
walon committed May 27, 2023
1 parent b20746f commit 5d421df
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 20 deletions.
1 change: 0 additions & 1 deletion basic/notsupportedfeatures.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,4 @@
- 支持Unity Jobs库,但无法利用burst加速。如果burst部分在AOT,则仍然原生方式执行;如果burst部分在热更部分,则虽然是Jobs并发执行,但以解释方式执行。
- 不支持`System.Runtime.InteropServices.Marshal``Marshal.StructureToPtr`之类序列化结构的函数,但普通Marshal函数如`Marshal.PtrToStringAnsi`都是能正常工作的。
- 不支持[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.xxx)]。纯粹是时机问题,Unity收集这些函数的时机很早,此时热更新dll还没加载。一个推荐的办法是你使用反射收集这些函数,在合适的时机主动调用它们。
- 支持函数级别的profile, 但不支持手动调用 `UnityEngine.Profiling.Profiler.BeginSample` 对代码段进行profile。
- 不支持对解释代码部分进行C#级别调试,因为没暂时没时间写调试器
8 changes: 8 additions & 0 deletions help/commonerrors.md
Original file line number Diff line number Diff line change
Expand Up @@ -339,6 +339,14 @@ Wrapper函数不足。你需要为热更新中的添加了MonoPInvokeCallback特

这是已知bug,跟unity的代码实现有关,只有挂载在热更新资源上热更新脚本才会有这个问题,通过代码中AddComponent添加的热更新脚本是可以用这个方法查找到。请改用 `GameObject.GetComponent<T>()``GameObject.GetComponent(typeof(T))`

### 使用MemoryProfile抓取内存快照会崩溃

商业版本支持。请看[商业化服务](/other/business.md)

### profile的 BeginSample和EndSample 无法生效

商业版本支持。请看[商业化服务](/other/business.md)

### 使用 Unity.netcode.runtime 后出现 NotSupportNative2Managed 桥接函数缺失异常

原因是 在Unity.netcode.runtime.dll中 NetworkManager.RpcReceiveHandler 是internal, 定义如下
Expand Down
41 changes: 23 additions & 18 deletions other/business.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,15 @@
# 商业化服务

灵活支持多种商业化形式,既可以是一整套的标准化企业服务,也可以购买单独的技术产品
我们提供多种高端商业版本及可灵活定制的技术服务,满足游戏项目的各种应用场景下的需求

## 标准企业技术支持
## HybridCLR企业版

- 对Android64、iOS64平台的技术支持(其他服务均只针对这些平台)
- HybridCLR 社区版本的技术支持,包含一对一远程协助指导
- Bug标准响应及解决,大多数可复现bug会在2-7天内修复或者提供规避方案
- 提前获得社区版本暂未跟进的LTS小版本的支持
- 对2019.4.x、2020.3.x等已经过期的LTS版本的bug修复支持
- 与lua或者其他热更新方案兼容的技术指导

## 高级企业技术支持
提供了一些社区版本所不支持的高级特性。

- 包含标准企业版本的所有服务
- 额外新增对 Android32、**WebGL(含MiniGame、微信小游戏)**、Win64、MacOS平台的技术支持(扩展到所有服务)
- Bug快速响应及解决,大多数可复现Bug会在6-24小时内修复或者提供规避方案
- 移植非标准支持范围内小版本的技术指导,例如指导支持2022.2.4版本。
- **提前获得Unity 2022、2023系列预览版本的支持**
- 优化指导
- **对WebGL支持更完善**
- **优化了解释性能**,支持函数inline(对于短函数有10多倍的性能提升)、newobj inline、类成员访问优化、typeof优化等重要优化。
- 对2019.4.x、2020.3.x等已经到期的LTS版本的维护支持(出于维护成本的原因,社区2.x版本将停止更新,从3.x起,只维护2021、2022及更高版本)。
- 对Profile支持更佳,支持Memory Profile的内存快照,支持Profile.BeginSample和EndSample。


## Differential Hybrid Execution(DHE) 差分混合执行技术
Expand All @@ -33,7 +24,7 @@ DHE分区`标准`和`高级版本`,其中高级版本额外包含了`解释指
- 可以任意变更代码,对代码基本无入侵,几乎没有特殊注意事项,使用方式跟社区版本近似。
- 工作流简单,不需要像injectfix之类的方案那样自己标注哪些函数发生变化,由工具全部自动处理。
- 对项目的改造成本比纯热更新版本更低。例如可以直接在DHE中定义extern函数,而不需要移到AOT模块。
- 高级版本包含了**解释指令优化,变化部分的大多数数值计算指令性能提升100-300%甚至更多**,进一步大幅提升性能水平。
- 高级版本包含了**解释指令优化,变化部分的大多数数值计算指令性能提升100-300%甚至更多**(企业版本不含此项优化),进一步大幅提升性能水平。
- 原生代码已全部在包体中,被iOS拒审的风险大幅降低


Expand Down Expand Up @@ -66,8 +57,22 @@ DHE分区`标准`和`高级版本`,其中高级版本额外包含了`解释指
- 要求业务代码不会再使用被卸载的Assembly中的对象或者函数,并且退出所有在执行的旧逻辑
- 要求重载后在旧Assembly中存在同名类的MonoBehaviour中的被Unity引擎特殊处理函数如Awake之类不发生增删(但函数体可以变化)

## 其他服务

## 企业技术支持

可以灵活选择企业所需要的技术服务项目,根据服务项目计费。

- 对Android64、iOS64平台的技术支持(其他服务均只针对这些平台)
- 对Android32、**WebGL(含MiniGame、微信小游戏)**、Win64、MacOS平台的技术支持
- 移植对Linux、Switch等未支持平台的支持
- Bug标准响应及解决,包含一对一远程协助指导,大多数可复现bug会在2-7天内修复或者提供规避方案
- 对2019.4.x、2020.3.x等已经过期的LTS版本的bug修复支持
- 移植非标准支持范围内小版本的技术指导,例如指导支持2022.2.4版本。
- **提前获得Unity 2022、2023系列预览版本的支持**
- 提前获得社区版本暂未跟进的LTS小版本的支持
- 对.net standard 2.0及2.1的支持
- 对增量式GC的支持
- 优化指导
- 其他特殊的定制服务

## 联系方式
Expand Down
2 changes: 1 addition & 1 deletion other/business_partner.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
- 百度 (*
- 完美
- 巨人
- 叠纸
- 叠纸*
- 游族 (*)
- 智明星通
- bilibili
Expand Down

0 comments on commit 5d421df

Please sign in to comment.