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();
문제 해결에 도움이 되었나요?