Vision 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
MaterialSwapSet
在PolySpatialSettings
中使用,并有如下说明:
这个工具提示用于定义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
资产,开发者可以为不同的体积相机设置不同的配置,然后在场景中将这些配置应用到相应的体积相机组件上。 - 这个类提供了
Mode
和Dimensions
属性,用于获取和设置配置的模式和尺寸。这些属性在运行时是只读的,确保了配置的一致性和稳定性。 - 该类还提供了内部使用的
PrivateMode
和PrivateDimensions
属性,这些属性允许在脚本中修改配置的值,但在编辑器中这些值是不可更改的,以防止在运行时意外更改配置。
参考文档
更多推荐
所有评论(0)