支持的 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的需求和约束。