版本
范围语音设置允许对服务器上发生的语音通路进行精细控制。这些设置可优化很多用户在同一房间中时的带宽用量,不过每个用户都只能听到少数其他用户的声音。比如,在开放世界游戏和大逃杀等游戏中。
在大部分基于团队的游戏中,团队成员只能跟自己身边的人说话。在这种情况下,为每个团队使用一个 Room ID 会更方便一些。
在默认情况下,所有用户的团队 ID 均为 0,表示他们不属于任何团队。在这种情况下,在将语音输出到用户时,服务器不会做任何过滤。
鉴于以下函数的坐标和范围参数使用 32 位整数,开发者可能需要以非线性方式将游戏对象位置映射至发送到 GMEWWisePlugin_SetSelfPosition
的位置和发送到 GMEWWisePlugin_SetRangeAudioRecvRange
的范围。
/** * @brief 设置当前玩家的团队 ID。 * 具有相同团队 ID 的玩家始终都能与彼此说话, * 无论在怎样的团队模式下或者之间距离多远。 * 团队是指处在同一房间内并共用相同团队 ID 的一组玩家。 * @param[in] teamID 该整数值用于识别团队 ID。 * 团队 ID 为 0 表示没有团队。在这种情况下,在将语音输出到此用户时, * 会停用在服务器上做的过滤。 * @sa GMEWWisePlugin_SetRangeAudioTeamMode */ void GMEWWisePlugin_SetRangeAudioTeamID(int teamID);
/** * @brief 设置当前玩家所要使用的团队模式。 * * TEAMMODE_GLOBAL:只要位置在接收范围之内, 就会接收团队中的玩家的声音。 * 始终接收同一团队中的玩家的声音。 * * TEAMMODE_TEAM:只接收队友的声音, * 即玩家与当前玩家共用相同的团队 ID。 * 不应用基于距离范围的过滤。 */ void GMEWWisePlugin_SetRangeAudioTeamMode( GMEWWisePlugin_TeamMode teamMode );
/** * @brief 设置全局团队模式下玩家之间的收听距离。 * 在全局团队模式下,在位置处于范围之内时, * 将接收具有不同团队 ID 的玩家的声音。 * 范围为玩家位置之间的 3D 距离, * 跟 GMEWWisePlugin_SetSelfPosition 设置的一样。 * 在服务器上依据此范围应用过滤。 * @param[in] range 该整数值代表收听距离。 * @sa GMEWWisePlugin_SetSelfPosition */ void GMEWWisePlugin_SetRangeAudioRecvRange(int range);
/** * @brief 设置当前玩家的位置。 * @param[in] positionX 当前玩家的 X 坐标 * @param[in] positionY 当前玩家的 Y 坐标 * @param[in] positionZ 当前玩家的 Z 坐标 * @sa GMEWWisePlugin_SetRangeAudioRecvRange */ void GMEWWisePlugin_SetSelfPosition(int positionX, int positionY, int positionZ);