public abstract int InitSpatializer(string modelPath)
参数 | 类型 | 意义 |
modelPath | string | 3D 音效资源文件的绝对路径 |
public abstract int EnableSpatializer(bool enable, bool applyToTeam)
参数 | 类型 | 意义 |
enable | bool | 开启之后可以听到 3D 音效 |
applyToTeam | bool | 3D 语音是否作用于小队内部,仅 enable 为 true 时有效 |
public abstract bool IsEnableSpatializer()
返回值 | 意义 |
true | 开启状态 |
false | 关闭状态 |
距离范围(引擎单位) | 衰减公式 |
0 < N < range/10 | 衰减系数:1.0 (音量无衰减) |
N ≥ range/10 | 衰减系数:range/10/N |
public abstract void UpdateAudioRecvRange(int range)
参数 | 类型 | 意义 |
range | int | 设定音效可接收的范围,建议设置100,此处的距离单位为游戏引擎中的距离单位 |
public abstract int UpdateSelfPosition(int position[3], float axisForward[3], float axisRight[3], float axisUp[3])
参数 | 类型 | 意义 |
position | int[] | 自身在世界坐标系中的坐标,顺序是前、右、上 |
axisForward | float[] | 自身坐标系前轴的单位向量 |
axisRight | float[] | 自身坐标系右轴的单位向量 |
axisUp | float[] | 自身坐标系上轴的单位向量 |
FVector cameraLocation = UGameplayStatics::GetPlayerCameraManager(GetWorld(), 0)->GetCameraLocation();FRotator cameraRotation = UGameplayStatics::GetPlayerCameraManager(GetWorld(), 0)->GetCameraRotation();int position[] = { (int)cameraLocation.X,(int)cameraLocation.Y, (int)cameraLocation.Z };FMatrix matrix = ((FRotationMatrix)cameraRotation);float forward[] = { matrix.GetColumn(0).X,matrix.GetColumn(1).X,matrix.GetColumn(2).X };float right[] = { matrix.GetColumn(0).Y,matrix.GetColumn(1).Y,matrix.GetColumn(2).Y };float up[] = { matrix.GetColumn(0).Z,matrix.GetColumn(1).Z,matrix.GetColumn(2).Z};ITMGContextGetInstance()->GetRoom()->UpdateSelfPosition(position, forward, right, up);
Transform selftrans = currentPlayer.gameObject.transform;Matrix4x4 matrix = Matrix4x4.TRS(Vector3.zero, selftrans.rotation, Vector3.one);int[] position = new int[3] { selftrans.position.z, selftrans.position.x, selftrans.position.y };float[] axisForward = new float[3] { matrix.m22, matrix.m02, matrix.m12 };float[] axisRight = new float[3] { matrix.m20, matrix.m00, matrix.m10 };float[] axisUp = new float[3] { matrix.m21, matrix.m01, matrix.m11 };ITMGContext.GetInstance().GetRoom().UpdateSelfPosition(position, axisForward, axisRight, axisUp);
public abstract int UpdateOtherPosition(int position[3])
参数 | 类型 | 意义 |
position | int[] | 其他玩家在世界坐标系中的坐标,顺序是前、右、上 |
virtual int AddSpatializerBlacklist(const char* openId);
virtual int RemoveSpatializerBlacklist(const char* openId);
virtual int ClearSpatializerBlacklist();
本页内容是否解决了您的问题?