支持的 Unity 功能和组件
Unity的大部分组件都可以在这个平台上不需要修改就可以工作——包括大多数自定义monobehaviour、动画逻辑、物理、输入处理、资产管理、AI等等。然而,需要渲染的组件需要特殊的支持。因此,一些组件在此平台上提供的功能集有所减少;其他目前不支持。下表总结了该平台上各种渲染组件支持的当前状态。
有关转换旧项目的更多信息,另请参阅Porting Unity Projects to PolySpatial XR。
Unity Simulation Components/Systems
在此页面中不可能列出Unity公开的所有系统和软件包,但下表列出了对一系列Unity核心功能的支持状态:
| Component | Status |
|---|---|
| Transform | 支持 |
| Audio | Not fully spatialized |
| MeshFilter | 支持 |
| Animation / Animators | 支持 |
| 2D Physics | 支持 |
| 3D Physics | 支持 |
| Scripts | 支持 |
| AI & Navmesh | 支持 |
| Terrain | 实验支持 |
“MonoBehaviours”预计会起作用,但这取决于脚本与哪些组件交互。
Rendering Components / Systems
| Component | Status |
|---|---|
| MeshRenderer | 照明必须通过材质设置 在即时模式下不支持此组件 不支持"Additional Settings"(动态遮挡、渲染层) |
| SkinnedMeshRenderer | 仅限未优化的动画(模型导入检查器的装备选项卡上的Optimize Game Objects选项如果出现,必须勾选。) |
| Particle Systems | 部分支持;请参阅下面的Particle Systems |
| Trail Renderer | 部分支持;请参阅下面的Particle Systems |
| Light | 最多只能有4个动态光源,并且要求每个受影响的材质在其着色器图中包含一个 PolySpatial Lighting Node |
| Camera | 不支持 |
| Halo | 不支持 |
| Lens Flare | 不支持 |
| Line Rendering | 不支持 |
| Projector | 不支持 |
| Visual Effects | 不支持 |
| Lens Flare | 不支持 |
| Level of Detail (LoD) | 不支持 |
| Occlusion Area | 不支持 |
| Occlusion Portal | 不支持 |
| Skybox | 不支持 |
| URP Decal projector | 不支持 |
| Tilemap Renderer | 不支持 |
| Video Player | Limited support |
| Graphics Raycaster | 不支持 |
| Shaderlab Shaders | 不支持 |
| Post Processors | 不支持 |
| Lightmapping | 通过PolySpatial Lighting Node提供有限支持 |
| Baked Lighting | 通过PolySpatial Lighting Node提供有限支持 |
| Enlighten | 不支持 |
| Light Probes | 通过PolySpatial Lighting Node提供有限支持 |
| Reflection Probes | 通过PolySpatial Lighting Node提供有限支持 |
| Trees | 不支持 |
| Fog | 不支持 |
其中一些功能由于平台限制而不受支持(例如,全屏图形后处理器与共享渲染系统的想法不兼容),而其他功能则属于正在进行或计划开发的领域。
Particle systems
PolySpatial正在积极开发对Unity内置粒子的支持。目前,它提供了几种替代模式,每种模式都有自己的一套质量和性能平衡。您可以在“Project Settings > PolySpatial > Particle Mode”下在项目范围内配置这些模式。
Supported Modes:
Replicate Properties:此模式旨在将Unity粒子系统属性映射到RealityKit提供的本地粒子系统。虽然提供相对较好的性能,但视觉质量可能会有很大差异,特别是对于利用高级功能的粒子。在此模式下不支持自定义着色器。
Bake to Mesh:在该模式下,每帧为每个粒子系统烘焙一个动态网格。它将视觉效果与Unity渲染紧密结合,允许利用Unity内置粒子系统的大多数功能,包括使用ShaderGraph编写的自定义着色器。然而,这种模式目前会带来很大的性能开销。我们正在积极努力提高烘焙颗粒的性能。
Note:如果场景中有无边界体积摄像机和ARSession,则Baked Mesh广告牌粒子仅面向摄像机。右键单击编辑器Hierarchy窗口,然后从上下文菜单中选择XR > AR Session,可以将ARSession添加到场景中。
Note:PolySpatial当前不支持VFXGraph。
Replicate Properties Support
当在PolySpatial中使用“Replicate Properties”粒子模式时,粒子系统模块在不同程度上得到支持,如下表所示:
| Module | Status |
|---|---|
| Emission | 部分支持 |
| Shape | 部分支持 |
| Velocity over lifetime | 部分支持 |
| Limit Velocity over lifetime | 部分支持 |
| Inherit velocity | 部分支持 |
| Force over lifetime | 部分支持 |
| Color over lifetime | 部分支持 |
| Color by speed | 不支持 |
| Size over lifetime | 部分支持 |
| Size by speed | 不支持 |
| Rotation over lifetime | 部分支持 |
| Rotation by speed | 不支持 |
| External Forces | 不支持 |
| Noise | 部分支持 |
| Collision | 部分支持 |
| Triggers | 不支持 |
| Sub Emitters | 部分支持 |
| Texture sheet animation | 部分支持 |
| Lights | 不支持 |
| Trails | 不支持 |
| Custom Data | 不支持 |
| Renderer | 部分支持 |
用户界面(UI)
Unity UI在世界空间中起作用,但屏幕空间UI和高级视觉功能(如遮罩、阴影等)目前不起作用。下表总结了其他UI特性的支持情况:
| Component | Status |
|---|---|
| TextMesh | 支持 |
| Canvas Renderer | 部分支持 |
| Sprite Renderer | 支持 |
| TextMesh Pro | •;部分支持 •;仅限SDF •;无自定义着色器 |
| Rect Transform | 无具体尺寸支持 |
| Platform Text | 请参阅Platform Text Rendering |
Final thoughts
Unity有更多的组件,但本节涵盖了普通XR应用程序的主要部分。一般来说,现有的Unity项目可能需要移植到PolySpatial XR。
您需要通过编写自己的PolySpatial XR兼容系统或找到解决这些限制的方法来支持您现有的功能,从而实验、调查和适应PolySpatial XR的需求和约束。