本文是一个简单的入门配置流程,暂不涉及ECS以及Havok引擎的介绍和分析,有兴趣的读者可以自行网上查阅。
使用的Unity版本: 2020.3.22f1c1(LTS) URP 10.7.0
环境配置
需要的Packages有:
-
Entities
-
Havok Physics for Unity
-
Hybrid Renderer
首先是在Unity2020之后,启用预览包移到了菜单栏 Edit > Project Settings > Package Manager 中的Enable Preview Packages。
之后在Package Manager里面还是无法找到Entities,因为从2020版本开始,Unity修改了Package Manager的一些策略,处于早期开发阶段以及开发不活跃的包无法直接搜索到,需要我们用URL的方式加载,过程如下:
Entity安装
-
打开Unity的菜单栏
Window > Package Manager
。 -
在左上角+号图标选择
Add package from git URL
。

- 在输入框中输入
com.unity.entities
,然后点击Add按钮,稍等它安装一下。

如下图就安装好了:

安装好Entity的时候,Unity会自动为你安装好依赖的包,比如:Burst,Jobs。
Hybird Renderer安装
和上面步骤2中一样,我们Add package from git URL,填写com.unity.rendering.hybrid@0.11.0-preview.42,安装好Hybird Render,没有这个的话Entity就无法被渲染。

然后我们在Project Setting里面的player选单中找到Scripting Define Symbols,点击添加 ENABLE_HYBRID_RENDERER_V2
,
这一步的作用是将刚刚安装好的Hybird Renderer从V1转成V2,一代的支持度还比较低,很多渲染方式都有限制,具体的情况可以查看官方文档在这里:Unity Manual: Hybird Renderer
Havok Physics for Unity安装
直接在Package Manager右上角的搜索框中搜索Havok Physics for Unity安装即可。
转换GameObject为Entity
我们先建立一个测试用的平台和小球,在他们的Inspector里Add Component,输入Convert To Entity:

在通过Entity使用物理引擎,可以直接添加Physics Body、Physics Shape等,也可以直接像普通的工作流程一样添加Rigidbody,在下一次启动运行时,会自动被转换成Entity可以使用的属性,现在给小球加上Rigidbody,并运行查看:

下面的Debug窗口在Window > Analysis > Entity Debugger打开,现在可以看到运行正常,刚刚设置转化为entity的平面和小球也在Debug窗口中显示出来了,但是现在我们还只是使用Unity内部的Physics X物理引擎,接下来我们转到Havok物理引擎去。
PS:这里建议还是直接使用Unity DOTS PHysics的组件Physics Body、Physics Shape来替代Collider和Rigidbody,因为有一些物理模型的设计方式可能有变化,比如摩擦和回弹。
配置Havok Physics
接下来的步骤很简单:
-
直接新建一个空的Game Object,重命名一下叫做PhysicsSetting,同样添加Convert To Entity把它转化为Entity
-
再给它添加Physics Step,在Simulation Type中选择Havok Physics替代Unity Physics
-
添加Havok Physics Configuration,记得勾选Enable Visual Debugger。这一步是方便我们一会儿在Havok Visual Debugger窗口里观察调试
最后就是这样:

接下来我们可以选Window > Analysis > Havok Visual Debugger,打开物理调试窗口,可以发现它与Havok物理引擎使用我们之前设置的25001本地端口进行通讯,这时点击运行,看看最后的效果吧:

至此就是简单的在Unity中使用Havok引擎,现阶段Unity ECS的开发还不算太成熟,在逻辑、渲染和实际制作方面都有很多坑,留着以后慢慢踩了~