# 位置频道属性

> Understand properties for positional channels in Vivox.

用户在位置音频频道中的音频体验取决于 [`VivoxService.Instance.JoinPositionalChannelAsync`](https://docs.unity3d.com/Packages/com.unity.services.vivox@latest/index.html?subfolder=/api/Unity.Services.Vivox.IVivoxService.html#Unity_Services_Vivox_IVivoxService_JoinPositionalChannelAsync_System_String_Unity_Services_Vivox_ChatCapability_Unity_Services_Vivox_Channel3DProperties_Unity_Services_Vivox_ChannelOptions_) 的 Channel3DProperties 组件。

以下属性在频道中控制 3D 体验。每个属性在 Channel3DProperties 类的 HTML 参考中都进行了非常详细的说明。

* `AudibleDistance`

  * 监听器能够听到扬声器并接收其文本消息的距离扬声器的最大距离。
  * 默认值为 32。

* `ConversationalDistance`

  * 控制扬声器音频保持其原始音量的范围，超出该范围时，语音聊天的响度在被听到时开始淡出。
  * 默认值为 1。

* `AudioFadeModel`

  * 指定控制音频在 `ConversationalDistance` 与 `AudibleDistance` 之间如何淡化的形状的公式或曲线。
  * 默认值为 `AudioFadeModel.InverseByDistance`。

* ` AudioFadeIntensityByDistance`

  * 控制 `AudioFadeModel` 曲线的幅度，以便使语音聊天响度的衰减达到上限或下限。
  * 默认值为 1.0。

选择默认 `Channel3DProperties` 值都是为了提供适用于大多数情况的听起来最自然且逼真的 3D 音频。使用默认属性时，32 米（约 105 英尺）范围内的任何听者都可以听到发言者，1 米（约 3 英尺）范围内的任何人都能听到发言者的最大音量。

> **Note:**
>
> 默认距离值使用米，因为这是 Unity 中的默认距离测量单位，但您可以以任何比例指定这些值。

自定义距离值时，请考虑以下准则：

* 您可以采用任何单位表示 AudibleDistance 和 ConversationalDistance，但是这两个单位必须始终匹配。值可以不同。

  > **Note:**
  >
  > 使用 Set3DPosition 方法报告角色的位置时，必须使用相同的单位。

* ConversationalDistance 是指听者能够以原始音量听到发言者语音的距离。该距离必须是处于范围 0 \<= ConversationalDistance \<= AudibleDistance 中的整数。可以将该距离理解为听者与发言者之间的理想对话距离。

* 当 ConversationalDistance 是游戏中典型讲话实体的一半高度时，听起来最逼真。

  如果玩家比普通成年人矮或高，则考虑调整此值，以便进行匹配。

* 当使用默认 AudioFadeModel 值时，如果要使语音聊天在 AudibleDistance 边缘自然淡入或淡出至接近零响度，以便使其听起来不像是被突然中断，则将 AudibleDistance 设置为最小值：

  32 × *ConversationalDistance* ÷ *AudioFadeIntensityByDistance*。

  如果想要更低的最大 AudibleDistance（例如用于限制接收文本的范围），可相应地增加 AudioFadeIntensityByDistance。

  根据环境游戏噪声或音乐的音量，可能想要进一步调整这些值，以确保仅在想要的距离可听到语音聊天。

* 当使用 ExponentialByDistance AudioFadeModel 时，建议使 ConversationalDistance 值保持在 1 或更大。

* 当使用 ExponentialByDistance AudioFadeModel 时，建议根据以下公式调整 AudioFadeIntensityByDistance 属性的值：

  *AudioFadeIntensityByDistance* = 3 ÷ (1 + 1.75 × log10(*ConversationalDistance*))
