Vison Pro/Unity/Poly Spatial开发笔记整理【三】(Poly Spatial阅读理解)

这篇具有很好参考价值的文章主要介绍了Vison Pro/Unity/Poly Spatial开发笔记整理【三】(Poly Spatial阅读理解)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Poly Spatial脚本

名称 状态 描述 类型
PolySpatialSettings 详细 用于配置多边形空间相关参数的设置类。 ScriptableObject
MaterialSwapSet 详细 用于在不同材质之间进行切换的集合。 ScriptableObject
PolySpatialObjectUtils 详细 包含多种对象操作工具的实用工具类。 class
PolySpatialShaderGlobals 详细 提供多边形空间Shader全局变量的类。 class
PolySpatialShaderProperties 详细 包含多边形空间Shader属性的集合。 class
VisionOSGroundingShadow 详细 用于实现Vision OS着陆阴影效果的类。 MonoBehaviour
VisionOSHoverEffect 详细 用于实现Vision OS悬停效果的功能。 MonoBehaviour
VisionOSImageBasedLight 详细 用于创建基于图像的Vision OS光照效果。 MonoBehaviour
VisionOSImageBasedLightReceiver 详细 用于接收基于图像的Vision OS光照效果的接收器。 MonoBehaviour
VisionOSSortingGroup 详细 用于对Vision OS中的渲染对象进行排序的分组类。 MonoBehaviour
VisionOSVideoComponent 详细 用于处理Vision OS视频组件的类。 MonoBehaviour
VolumeCamera 详细 用于处理体渲染相机的类,用于多边形空间和视觉效果。 MonoBehaviour
VolumeCameraWindowConfiguration 详细 用于配置 VolumeCamera窗口设置的类。 配置类
VolumeCameraConfiguration 已弃用 用于配置体渲染相机设置的类。使用VolumeCameraWindowConfiguration 配置类
PolySpatialGroundingShadow 已弃用 用于处理多边形空间着陆阴影效果的类。 使用VisionOSGroundingShadow MonoBehaviour
PolySpatialHoverEffect 已弃用 用于实现多边形空间悬停效果的功能。使用VisionOSHoverEffect MonoBehaviour
PolySpatialImageBasedLight 已弃用 用于创建基于图像的多边形空间光照效果。使用PolySpatialImageBasedLight MonoBehaviour
PolySpatialImageBasedLightReceiver 已弃用 用于接收基于图像的多边形空间光照效果的接收器。使用VisionOSImageBasedLightReceiver 接收器类

PolySpatialSettings

以下是 PolySpatialSettings 类定义的枚举和结构体:

成员名称 类型 描述 具体用法
PolySpatialTextureCompressionFormat 枚举 定义了支持的多边形纹理压缩格式。 用于设置和获取纹理压缩格式。
NetworkingMode 枚举 定义了网络模式,本地或本地和客户端。 控制网络功能的使用方式。
RecordingMode 枚举 定义了录制和播放模式。 用于控制录制和播放行为。
ParticleReplicationMode 枚举 定义了粒子复制模式。 用于设置粒子系统的复制行为。
ProjectionHalfAngles 结构体 定义了投影的半角度。 用于设置立体显示的投影参数。
DisplayProviderParameters 结构体 定义了显示提供者的参数。 用于配置VR显示设置。

以下是 PolySpatialSettings 类的成员列表,包括方法、属性、以及它们的具体类型、描述和具体用法:

成员名称 类型 描述 具体用法
s_Instance 静态变量 存储PolySpatial设置的实例引用。 用于全局访问PolySpatial设置实例。
InitializeInstance 方法 初始化PolySpatial设置实例。 用于在运行时或编辑器中获取或创建设置实例。
m_PackageVersion 字段 string 类型,PolySpatial包的版本号。 用于获取包的版本信息。
m_EnableStatistics 字段 bool 类型,是否启用统计信息收集。 用于开启或关闭统计信息的收集。
m_ColliderSyncLayerMask 字段 LayerMask 类型,用于同步的碰撞器层掩码。 用于设置哪些层的碰撞器将被跟踪。
m_ParticleMode 字段 ParticleReplicationMode 类型,粒子复制模式。 用于设置粒子系统的复制方式。
m_TrackLightAndReflectionProbes 字段 bool 类型,是否跟踪光照和反射探针。 用于控制是否跟踪光照和反射探针。
m_DisableTrackingMask 字段 LayerMask 类型,禁用跟踪的层掩码。 用于设置哪些层的物体不会被跟踪。
m_DisabledTrackers 字段 string[] 类型,禁用的跟踪器名称数组。 用于列出不被跟踪的PolySpatial跟踪器类型。
m_AdditionalTextureFormats 字段 PolySpatialTextureCompressionFormat[] 类型,额外的纹理格式数组。 用于设置纹理导入器生成的纹理格式。
m_DefaultVolumeCameraWindowConfiguration 字段 VolumeCameraWindowConfiguration 类型,默认的体积摄像机窗口配置。 用于获取或设置默认的体积摄像机配置。
m_AutoCreateVolumeCamera 字段 bool 类型,是否自动创建体积摄像机。 用于控制是否在场景加载后自动创建体积摄像机。
m_TransmitDebugInfo 字段 bool 类型,是否传输调试信息。 用于控制是否在层级视图中显示预览对象名称。
m_EnableFallbackShaderConversion 字段 bool 类型,是否启用后备Shader转换。 用于启用或禁用不支持Shader的运行时转换。
m_EnableRuntimeValidation 字段 bool 类型,是否启用运行时验证。 用于开启或关闭运行时设置验证。
PolySpatialNetworkingMode 属性 NetworkingMode 类型,获取网络模式。 用于获取当前的网络模式。
ServerAddresses 属性 List<SocketAddress> 类型,获取服务器地址列表。 用于获取用于网络连接的服务器地址。
m_ConnectionDiscoveryPort 字段 int 类型,自动连接发现的默认端口。 用于设置自动连接发现的端口。
m_ConnectionDiscoverySendInterval 字段 float 类型,自动连接发现发送间隔。 用于设置自动连接发现的发送间隔。
m_ConnectionDiscoveryTimeOutDuration 字段 float 类型,自动连接发现超时持续时间。 用于设置自动连接发现的超时时间。
IgnoredScenePaths 属性 HashSet<string> 类型,获取忽略的场景路径集合。 用于获取在网络同步中忽略的场景路径。
m_DeviceDisplayProviderParameters 字段 DisplayProviderParameters 类型,设备显示提供者参数。 用于获取设备显示设置。
m_SimulatorDisplayProviderParameters 字段 DisplayProviderParameters 类型,模拟器显示提供者参数。 用于获取模拟器显示设置。
m_MaterialSwapSets 字段 MaterialSwapSet[] 类型,材质交换集数组。 用于获取材质交换集,用于在运行时替换材质。

PolySpatialTextureCompressionFormat

枚举值 索引 描述
Unknown 0 未知的纹理压缩格式
ETC 1 Ericsson Texture Compression,一种低质量的纹理压缩格式
ETC2 2 Ericsson Texture Compression 2,改进的ETC格式
ASTC 3 Adaptive Scalable Texture Compression,支持多种压缩级别的高级纹理压缩格式
PVRTC 4 PowerVR Texture Compression,专为移动设备优化的纹理压缩格式
DXTC 5 DirectX Texture Compression,包括DXT1、DXT3和DXT5的一系列纹理压缩算法
BPTC 6 Blocked Pixel Texture Compression,Kodak开发的无损压缩格式
DXTC_RGTC 7 DirectX Texture Compression for RGTC textures,用于压缩特定类型的纹理格式

NetworkingMode

  • Local - 表示网络模式为本地,通常用于单人游戏或不需要网络通信的情况。
  • LocalAndClient - 表示网络模式同时支持本地和客户端,适用于需要同时处理本地玩家和网络玩家的游戏或应用。

RecordingMode

RecordingMode 枚举在 PolySpatialSettings 类中用于控制录制和播放功能,允许开发者根据需要启用或禁用这些功能。

  • None - 表示不进行录制或播放,这是默认状态,用于正常游戏或应用程序运行。
  • Record - 表示开始录制模式,这通常用于捕捉游戏或应用程序的运行数据,以便后续分析或回放。
  • Playback - 表示开始播放模式,这用于回放之前录制的数据,可以用于测试、演示或其他目的。

ParticleReplicationMode

以下是 ParticleReplicationMode 枚举的表格形式,包括对 ExperimentalBakeToTexture 特殊处理的对比:

枚举值 描述 特殊处理或备注
ReplicateProperties 复制粒子系统的属性到RealityKit 标准做法,适用于大多数情况。
BakeToMesh 将粒子系统的每一帧结果烘焙到一个网格上,并在RealityKit中渲染。 适用于需要固定粒子位置和形状的场景。
ExperimentalBakeToTexture 将粒子系统烘焙到纹理中。 实验性功能,可能用于特殊的视觉效果或性能优化。

ProjectionHalfAngles

ProjectionHalfAngles 是一个简单的数据结构,用于存储立体渲染中每个眼睛的视角范围。它包含四个浮点数字段:左、右、上、下,分别代表水平和垂直方向的视野角度。这些角度定义了视野的边界,用于正确设置VR或3D显示的投影矩阵。

DisplayProviderParameters

以下是 DisplayProviderParameters 结构体的成员及其描述的表格形式:

成员名称 类型 描述
framebufferWidth int 帧缓冲区的宽度,即渲染目标的水平分辨率。
framebufferHeight int 帧缓冲区的高度,即渲染目标的垂直分辨率。
leftEyePose Pose 左眼在3D空间中的位置和旋转姿态。
rightEyePose Pose 右眼在3D空间中的位置和旋转姿态。
leftProjectionHalfAngles ProjectionHalfAngles 左眼的投影半角度,定义了左眼的视角范围。
rightProjectionHalfAngles ProjectionHalfAngles 右眼的投影半角度,定义了右眼的视角范围。

MaterialSwapSet

MaterialSwapSetPolySpatialSettings中使用,并有如下说明:

这个工具提示用于定义PolySpatial在运行时将使用的Material替换。将您希望使用的任何MaterialSwapSet资源添加到此列表中。左侧的材料将作为备选方案被右侧的材料替换。例如,您可以将使用自定义Shader的Material与使用URP/Lit Shader的Material进行交换。

PolySpatialObjectUtils

这个类的方法提供了一种管理和同步 Unity 场景中的对象和渲染纹理的方式,特别是在使用 PolySpatial 进行跨平台或网络功能开发时。

方法名称 作用
MarkDirty(RenderTexture) 标记指定的 RenderTexture 为更改状态,以便通过 PolySpatial 进行更新。
GetPolySpatialIdentifier(GameObject) GameObject 生成一个在 PolySpatial 系统中使用的标识符。
GetGameObjectForPolySpatialIdentifier(ulong) 根据 PolySpatial 标识符返回对应的 GameObject

PolySpatialShaderGlobals

PolySpatialShaderGlobals 类提供了一系列静态方法和属性,用于管理和设置Shader全局变量,并通过 PolySpatial 系统进行跨平台同步。以下是类中方法的描述和作用的表格形式:

方法名称 描述 作用
SetFloat(string, float) 设置浮点型Shader全局变量的值,并通过 PolySpatial 进行同步。 用于更新Shader中的浮点型全局变量。
SetInteger(string, int) 设置整数型Shader全局变量的值,并通过 PolySpatial 进行同步。 用于更新Shader中的整数型全局变量。
SetVector(string, Vector4) 设置向量型Shader全局变量的值,并通过 PolySpatial 进行同步。 用于更新Shader中的向量型全局变量。
SetColor(string, Color) 设置颜色型Shader全局变量的值,并通过 PolySpatial 进行同步。 用于更新Shader中的颜色型全局变量。
SetMatrix(string, Matrix4x4) 设置矩阵型Shader全局变量的值,并通过 PolySpatial 进行同步。 用于更新Shader中的矩阵型全局变量。
SetTexture(string, Texture) 设置纹理型Shader全局变量的值,并通过 PolySpatial 进行同步。 用于更新Shader中的纹理型全局变量。
TryAdd(string, PropertyType) 尝试添加一个新的Shader全局变量到 PolySpatial 同步列表中。 用于添加新的全局变量,如果已存在则检查类型是否匹配。

此外,类中还定义了一些常量和内部变量,用于存储Shader全局变量的 ID 和类型信息,以便在运行时高效地访问和更新这些变量。这些变量包括:

  • 常量字符串(如 Time, DeltaTime, WorldSpaceCameraPos 等),用于表示常见的Shader全局变量。
  • PropertyType 枚举,定义了全局变量可能的数据类型(如 Float, Integer, Vector, Color, Matrix, Texture)。
  • 静态字段(如 TimeID, SinTimeID, CosTimeID 等),存储通过 Shader.PropertyToID 方法获取的全局变量的 ID。
  • s_PropertyTypes 字典,存储Shader全局变量的名称和类型。
  • s_Names 字典,用于快速获取特定类型的所有全局变量名称。
  • LightCount 常量,定义了同时支持的光源数量。
  • GetLightPropertyIDs(string) 方法,用于生成一系列光源相关的全局变量 ID。

PolySpatialShaderProperties

PolySpatialShaderProperties 类提供了一系列常量和静态方法,用于定义和访问与 PolySpatial 相关的Shader属性。这些属性在编辑器中用于节点生成(例如用于照明节点),并且可以被用户直接访问。
这个类的作用是为 PolySpatial 系统提供一种统一的方式来定义和管理Shader属性,确保在不同的平台和设备上能够一致地渲染场景,并且支持环境光照和反射效果的实现。以下是类中成员的描述和作用的表格形式:

成员名称 描述 作用
VolumeToWorld 用于存储从体积空间到世界空间的变换矩阵。 允许Shader访问体积空间到世界空间的转换。
Lightmap 用于存储光照贴图。 允许Shader访问光照贴图数据。
LightmapInd 用于存储光照贴图的索引。 允许Shader访问光照贴图的索引。
LightmapST 用于存储光照贴图的平移和缩放参数。 允许Shader访问光照贴图的ST参数。
SHAr, SHAg, SHAb, SHBr, SHBg, SHBb, SHC 用于存储环境光遮蔽(Spherical Harmonics)的各个分量。 允许Shader访问环境光遮蔽的分量。
ReflectionProbeCount 定义了同时支持的反射探针数量。 指定了可以用于环境反射的探针数量。
ReflectionProbeTexturePrefix 反射探针纹理的前缀。 用于生成反射探针纹理的名称。
ReflectionProbeWeightPrefix 反射探针权重的前缀。 用于生成反射探针权重的名称。
VolumeToWorldID, LightmapID, LightmapIndID, LightmapSTID, SHArID, SHAgID, SHAbID, SHBrID, SHBgID, SHBbID, SHCID 存储对应Shader属性的 ID。 用于在Shader中直接访问这些属性。
ReflectionProbeTextureIDs, ReflectionProbeWeightIDs 存储反射探针纹理和权重的 ID 数组。 用于在Shader中访问每个反射探针的纹理和权重。
GetReflectionProbePropertyIDs(string) 根据给定的前缀生成反射探针属性的 ID 数组。 用于创建和管理反射探针相关的Shader属性 ID。

VisionOSGroundingShadow

VisionOSGroundingShadow 脚本是一个Unity组件,用于指示具有该组件的游戏对象(GameObject)应该在游戏中投射一个基础阴影。这个阴影通常用于模拟物体对地面的遮蔽效果,增加场景的真实感和深度。以下是使用这个脚本的条件和它的作用:

使用条件:

  • 游戏对象必须已经附加了 VisionOSGroundingShadow 脚本。
  • 游戏对象必须有一个 MeshRenderer 组件,这样才能渲染出阴影。
  • 游戏对象通常需要有一个网格(Mesh)和材质(Material),以便 MeshRenderer 可以正确渲染。

作用:

  • 标记游戏对象以投射阴影,增强场景的视觉效果。
  • 通过阴影效果,提供物体与环境之间的视觉联系,使得物体看起来更加稳固地存在于场景中。

VisionOSHoverEffect

VisionOSHoverEffect 是一个Unity组件,用于指示附加了该组件的游戏对象(GameObject,简称GO)应该显示悬停效果(hover effect)。这个效果通常用于交互式应用程序中,当用户的视线或鼠标悬停在某个对象上时,提供视觉反馈。以下是使用这个脚本的条件和它的作用:

使用条件:

  • 游戏对象必须已经附加了 VisionOSHoverEffect 脚本。
  • 游戏对象必须有一个 MeshRenderer 组件,这样才能在对象上显示悬停效果。
  • 游戏对象必须有一个 Collider 组件,以便检测视线或鼠标的交点,从而触发悬停效果。
  • 应用程序应该有一个用于检测用户输入(如视线或鼠标移动)的系统,以便知道何时激活悬停效果。
  • 游戏对象可能还需要有适当的材质和着色器,以便正确显示悬停效果的视觉变化。

作用:

  • 提供一种机制,当用户的视线或鼠标悬停在游戏对象上时,触发特定的视觉效果。
  • 增强用户交互体验,通过视觉反馈让用户知道哪些对象是可交互的。
  • 可以用于高亮显示或改变对象的外观,以指示它可以被选择、点击或执行其他操作。
  • 与其他交互系统(如UI响应、对象选择等)协同工作,以创建一个直观和响应灵敏的用户界面。

请注意,VisionOSHoverEffect 可能是为特定的Unity项目或PolySpatial系统定制的组件,因此在标准的Unity文档中可能找不到相关信息。在使用这个组件时,需要确保遵循项目或系统的特定指南和要求。

VisionOSImageBasedLight

VisionOSImageBasedLight 是一个Unity脚本,用于创建基于图像的光源效果。这个脚本允许开发者指定两个纹理作为光源的图像,并可以设置混合参数、继承旋转和光照强度指数。以下是脚本中各个属性的描述和作用的表格形式:

属性名称 类型 描述 作用
m_FirstSource Texture 第一个图像源。 用于设置作为光源的第一个纹理。
m_SecondSource Texture 第二个图像源。 用于设置作为光源的第二个纹理,可以与第一个纹理混合。
m_Blend float 混合参数。 控制两个图像源混合的比例,当两个图像源都存在时使用。
m_InheritsRotation bool 是否继承旋转。 确定光源是否应该继承其所在游戏对象的世界空间旋转。
m_IntensityExponent float 光照强度指数。 控制光源的强度,使用2的幂次来缩放光照强度。

以下是公共属性的 getter 和 setter 方法的描述和作用:

公共属性名称 描述 作用
FirstSource 获取或设置第一个图像源。 允许开发者访问和修改 m_FirstSource 属性,并在修改时MarkDirty(需要更新)。
SecondSource 获取或设置第二个图像源。 允许开发者访问和修改 m_SecondSource 属性,并在修改时MarkDirty。
Blend 获取或设置混合参数。 允许开发者访问和修改 m_Blend 属性,并在修改时MarkDirty。
InheritsRotation 获取或设置是否继承旋转。 允许开发者访问和修改 m_InheritsRotation 属性,并在修改时MarkDirty。
IntensityExponent 获取或设置光照强度指数。 允许开发者访问和修改 m_IntensityExponent 属性,并在修改时MarkDirty。

VisionOSImageBasedLightReceiver

VisionOSImageBasedLightReceiver 是一个Unity脚本,用于接收基于图像的光照效果。这个组件允许开发者将特定的VisionOSImageBasedLight光源应用到游戏对象及其子对象上,从而影响它们的外观。以下是使用这个脚本的条件和它的作用:

使用条件:

  • 游戏对象必须已经附加了 VisionOSImageBasedLightReceiver 脚本。
  • 游戏对象或其场景中应该存在一个 VisionOSImageBasedLight 光源组件,这样才能接收并显示光照效果。
  • 游戏对象需要有适当的渲染器(如 MeshRenderer)和材质,以便正确显示基于图像的光照效果。

作用:

  • 允许游戏对象及其子对象接收来自 VisionOSImageBasedLight 光源的光照效果。
  • 通过设置 ImageBasedLight 属性,可以指定哪个基于图像的光源应该影响该游戏对象。

VisionOSSortingGroup

VisionOSSortingGroup 是一个Unity组件,它允许用户访问和控制平台级别的排序组。这个组件主要用于管理和调整游戏对象在渲染时的顺序,特别是在处理深度渲染顺序和颜色渲染顺序的关系时。以下是组件中各个属性和结构的描述及其作用的表格形式:

成员/属性名称 类型 描述 作用
RendererSorting 结构体 定义了渲染器排序信息。 包含排序顺序、关联的渲染器游戏对象以及是否应用于子渲染器的设置。
order int 渲染器在排序组内的顺序。 值越低,渲染器越早被绘制。
renderer GameObject 排序顺序应应用的渲染器。 指定哪个渲染器的排序顺序被设置。
applyToDescendants bool 是否将排序顺序应用于所有子渲染器。 确定排序规则是否应该递归应用到渲染器的所有子级。
DepthPass 枚举 定义深度渲染通道的类型。 指定深度是在颜色渲染之前、之后还是与颜色渲染同时绘制。
m_DepthPass DepthPass 深度渲染通道的当前设置。 控制深度渲染相对于颜色渲染的时机。
m_Renderers List<RendererSorting> 属于此排序组的所有渲染器的列表。 包含排序组中每个渲染器的排序信息。
depthPass DepthPass 公共属性,用于获取和设置深度渲染通道。 允许开发者访问和修改深度渲染通道的设置,并在更改时MarkDirty。
renderers List<RendererSorting> 公共属性,用于获取和设置渲染器列表。 允许开发者访问和修改排序组中渲染器的列表,并在更改时MarkDirty。

VisionOSVideoComponent

VisionOSVideoComponent类中,在这个组件中,提供了对音轨的控制,包括静音和音量调节的功能。以下是对类中与音轨相关的属性和方法的更新和描述:

成员名称 类型 描述和作用
m_TargetMaterialRenderer MeshRenderer 存储一个MeshRenderer对象的引用,视频将被应用到该对象的网格上。
targetMaterialRenderer MeshRenderer 属性,用于获取和设置m_TargetMaterialRenderer
m_Clip VideoClip 存储一个VideoClip对象,表示要播放的视频片段。
clip VideoClip 属性,用于获取和设置m_Clip
m_IsLooping bool 一个布尔值,表示视频播放是否循环。
isLooping bool 属性,用于获取和设置m_IsLooping
m_PlayOnAwake bool 一个布尔值,表示组件在Awake时是否自动播放视频。
playOnAwake bool 属性,用于获取和设置m_PlayOnAwake
m_Mute bool 一个布尔值,表示视频的音轨是否静音。
m_Volume float 表示视频音轨的音量,范围从0.0(静音)到1.0(最大音量)。
PlayerState 枚举 定义视频播放器的当前播放状态。(IsPlaying/IsStopped/IsPaused
m_State PlayerState 存储当前视频播放的状态。
GetState() 方法 获取当前视频播放的状态。
Play() 方法 开始播放视频。
Stop() 方法 停止播放视频。
Pause() 方法 暂停视频播放。
GetDirectAudioMute 方法 获取视频音轨的静音状态。
SetDirectAudioMute 方法 设置视频音轨的静音状态。
GetDirectAudioVolume 方法 获取视频音轨的音量。
SetDirectAudioVolume 方法 设置视频音轨的音量。

这个类提供了一套完整的接口,用于控制Unity场景中视频的播放和音频的设置。开发者可以通过这些属性和方法来实现视频播放的各种需求,比如在游戏或者应用程序中的特定场景下播放视频,控制视频的循环播放,以及调整音频的音量和静音状态。

VolumeCamera

这个类名为VolumeCamera,是Unity中的一个组件,用于实现多边形空间(PolySpatial)技术中的体渲染(volume rendering)。它模拟了一个“体积相机”,可以捕获在有向边界框(OBB)内的内容,并将这些内容转换到一个“规范体积”中,类似于常规相机的规范视图体积:一个以原点为中心的单位盒子。通常,这些内容随后会在主机上由相应的“体积渲染器”显示,通过将这个规范体积映射到体积渲染器自己的、独立的OBB中。效果是,体积相机边界内的3D内容会被转换、旋转、拉伸和/或压缩以填充渲染器的边界。

以下是VolumeCamera类内部成员的描述和作用的表格:

成员名称 类型 描述和作用
m_Dimensions Vector3 体积相机的边界框在Unity世界空间中的尺寸。在无界输出中被忽略。
m_IsUniformScale bool 如果为真,则锁定当前比例并均匀缩放相机。
m_OutputConfiguration VolumeCameraWindowConfiguration 输出体积相机窗口配置对象,或者为默认值。
CullingMask LayerMask 只有选定层中的对象在这个体积相机内部可见。
OpenWindowOnLoad bool 如果为真,在加载时自动打开这个体积相机的窗口。如果为假,必须通过OpenWindow()方法手动打开。
m_MatricesValid bool 标记矩阵是否有效。
m_VolumeToWorld / m_WorldToVolume Matrix4x4 从规范体积空间到世界空间和从世界空间到规范体积空间的转换矩阵。
m_BackingCameraGO / m_BackingCamera GameObject/Camera 用于提供剔除信息的后备相机对象和相机组件。
m_PolySpatialLayerIndex int 多边形空间层索引。
m_WindowOpen / m_WindowFocused bool 标记窗口是否打开和是否获得焦点。
m_RequestedWindowOpenState bool OpenWindow/CloseWindow设置的窗口打开请求状态。
m_ShowVolumeCameraEventsFoldout bool 编辑器中使用的字段,不会在运行时使用。
PolySpatialVolumeCameraMode 枚举 体积相机显示内容的模式,有边界或无边界。 Bounded/Unbounded
OnWindowOpened / OnWindowClosed / OnWindowResized / OnWindowFocused UnityEvent 触发的事件,当体积相机的窗口被打开、关闭、调整大小时。
m_LastOutputDimensions / m_LastContentDimensions Vector3 上次记录的输出尺寸和内容尺寸。

这个类提供了一套接口,用于控制Unity场景中的体积渲染。开发者可以通过这些属性和方法来实现体积渲染的各种需求,比如设置渲染的边界框尺寸、配置窗口行为、处理与主机的交互等。这样的设计使得VolumeCamera类非常灵活,可以适应多种不同的应用场景,特别是在多边形空间技术中实现高效的体积渲染。

VolumeCameraWindowConfiguration

VolumeCameraWindowConfiguration类是Unity中的一个ScriptableObject,用于定义和存储体积相机的配置参数。这个类提供了一种在Unity编辑器中创建和管理体积相机设置的方式,使得开发者可以在不编写代码的情况下调整相机的配置。

使用条件:

  • 项目中需要使用到体积相机(VolumeCamera)功能,特别是在使用Unity.PolySpatial命名空间下的多边形空间技术时。
  • 开发者希望通过Unity编辑器中的Inspector窗口来配置体积相机的参数,而不是在运行时通过代码进行修改。
  • 需要对体积相机的输出模式(有界或无界)和输出尺寸进行设置和保存。

作用:

  • VolumeCameraWindowConfiguration类允许开发者创建一个资产(Asset),在这个资产中定义体积相机的配置,例如输出模式(Bounded或Unbounded)和输出尺寸。
  • 通过在Unity编辑器中创建一个VolumeCameraWindowConfiguration资产,开发者可以为不同的体积相机设置不同的配置,然后在场景中将这些配置应用到相应的体积相机组件上。
  • 这个类提供了ModeDimensions属性,用于获取和设置配置的模式和尺寸。这些属性在运行时是只读的,确保了配置的一致性和稳定性。
  • 该类还提供了内部使用的PrivateModePrivateDimensions属性,这些属性允许在脚本中修改配置的值,但在编辑器中这些值是不可更改的,以防止在运行时意外更改配置。

参考文档

Unity PolySpatial Document官方文档文章来源地址https://www.toymoban.com/news/detail-861668.html

到了这里,关于Vison Pro/Unity/Poly Spatial开发笔记整理【三】(Poly Spatial阅读理解)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (四)Unity开发Vision Pro——参考文档

    4.1.1 支持的 Unity 功能和组件 大多数 Unity 组件无需修改即可在此平台上运行 - 包括大多数自定义 MonoBehaviours、动画逻辑、物理、输入处理、资产管理、AI 等。然而,需要渲染的组件需要特殊的支持。因此,一些组件在此平台上提供的功能集有所减少;其他目前不支持。下表总

    2024年02月13日
    浏览(39)
  • 基于Unity平台开发Vision Pro应用

    VisionOS是苹果最新空间计算设备Vision Pro的操作系统。Unity开发人员可以利用现有的3D场景 以及为 visionOS 构建游戏或应用程序的资产。有关 visionOS 的更多信息,请参阅 Apple 的 visionOS 概述。 visionOS提供了几种不同的显示应用程序的模式:Windows、Volumes或Spaces。用户可以使用Wind

    2024年01月22日
    浏览(54)
  • (六)Unity开发Vision Pro——词汇表

    1.PolySpatial Core  (com.unity.polyspatial):基础 PolySpatial 包,初始化和所有设置从这里开始。它执行更改跟踪和处理、序列化/反序列化,并包括 ShaderGraph 到 MaterialX 转换器 2.PolySpatial XR  (com.unity.polyspatial.xr):包括场景验证、功能配置文件、构建块和指导 UI。添加对 XRI、AR Foundatio

    2024年02月13日
    浏览(43)
  • Unity——2D小游戏笔记整理

    【每日一句:清晨和夜晚都请用尽全力去生活】 目录 一、环境搭建 二、人物 三、相机跟随人物移动 四、平铺精灵 五、血条跟随敌人行走 六、脚本逻辑 【玩家行走方法】 【玩家跳跃方法】 【改变玩家血量值方法】 【创建玩家子弹方法】 【主角血量,改变血条遮罩】 【敌

    2024年02月09日
    浏览(57)
  • Qt | .pro开发经验笔记

    2024年04月14日
    浏览(33)
  • Unity制作类胡闹厨房游戏 KitchenChaos 笔记整理

    本文章是油管上CodeMonkey的一个unity项目KitchenChaos的笔记整理,学习并整理这个项目主要是因为终于看到了一个比较完整地用到了unity的各种功能、风格较为清爽的、代码结构清晰的同时比较新的项目。在学习之后也确实有很大的收获,首先通过该教程第一次走完了一个小游戏

    2024年02月06日
    浏览(79)
  • HTC vive pro & unity开发者软件/SDK版本注意事项

    SteamVR插件是unity中VR开发的基础,必不可少。unity软件上实现对VR设备(头显、控制器、tracker)的渲染、实时追踪等功能。 推荐版本: SteamVR插件v1.2.3 link. VRTK是一套VR动作交互(移动、拾取等)的解决方案,提供了现成的交互代码。开发者也可以基于SteamVR开发自己的交互代码

    2024年02月06日
    浏览(62)
  • unity项目《样板间展示》开发:素材导入与整理

    这次带大家从0到1做一个unity项目: 《样板间展示》 。 顾名思义,项目内容是展示样板间,即玩家可以与房间中的物体、家具进行交互。 至于项目的用途:可以用于租房或者买房时用来在线上看样板间,也可以用于RPG游戏中主角的房屋漫游。 在下载素材之前,我们首先需要

    2024年01月22日
    浏览(58)
  • 【Unity开发必备】100多个 Unity 学习网址 资源 收藏整理大全【持续更新】

    众所周知,工欲善其事必先利其器,有一个好的工具可以让我们事半功倍,有一个好用的网站更是如此! 但是好用的网站真的太多了,收藏夹都满满的(但是几乎没打开用过😁)。 所以本文是对Unity相关的网站进行一个资源整合,可以让我们更方便的去学习Unity的更多知识内容

    2024年02月16日
    浏览(66)
  • 【unity游戏开发教程】Unity+Umotion Pro+VRoid+Blender制作人物模型和动画,在unity中简单制作二次元人物动画

    大家好!本期教程教大家在unity中制作二次元人物模型和动画 1.下载VRoid Studio 1.搜索VRoid Studio下载即可,或者前往官网VRoid官网 VRoid Studio是由pixiv开发的一款3D人物建模软件,VRoid的主要特征就是通过类似绘画的方式进行人物的建模,使人们更为轻松地创造自己的虚拟人物。

    2024年02月10日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包