오디오 룸
AudioRoom
경우에 따라 플레이어 사이의 거리에 관계없이 플레이어를 서로 다른 오디오 "룸"으로 나누는 것이 유용할 수 있습니다.
이는 문으로 인해 룸이 고립된 경우 같은 오디오 룸에 있는 플레이어만 서로 대화할 수 있음을 의미합니다. 이를 위해 4가지 클래스를 제공합니다:
- AudioRoomManager
- AudioRoom
- AudioRoomMember
- AudioDoor
AudioRoomManager
AudioRoomManager는 현장에 있는 룸과 플레이어 목록을 관리합니다.
MatchingRooms() 메소드는 플레이어가 매 동작 후 자신이 위치한 방의 목록을 가져오기 위해 호출합니다(방이 서로 겹칠 수 있음을 유의하십시오).
AudioRoom
오디오 룸은 AudioRoom 컴포넌트로 정의됩니다.
룸의 공간 위치는 중심점과 박스로 설정됩니다(기즈모 큐브가 씬 뷰에 표시).
각 AudioRoom은 특정 Id가 있으며, Awake() 중에 AudioRoomManager에 등록합니다.
IsIsolated 부울 변수는 문 때문에 룸 안에 있는 플레이어들이 다른 플레이어들로부터 고립되는지를 정의하는 데 사용됩니다.
룸과 관련된 문이 움직이면 Isolate() 메소드가 (AudioDoor로) 호출되어 플레이어가 룸 안에 있는지 확인하고 OnCurrentRoomIsolationChange() 메소드로 오디오 그룹 필터링 업데이트를 요청합니다.
AudioRoomMember
각 네트워크 플레이어 프리팹엔느 AudioRoomMember 클래스가 있으므AudioRoomMember는 사용자가 다른 룸으로 이동했는지 확인합니다.
그런 다음 룸 상태(격리 여부)에 따라 오디오 그룹(DynamicAudioGroupMember)을 설정합니다.
AudioDoor
AudioDoor 클래스는 오디오 룸을 구분하는 도어 게임 객체에 추가해야 합니다.
ToogleDoor() 및 Open()  공개 메소드 덕분에 문이 열리거나 닫힐 수 있습니다.
문을 열고 닫을 권한이 없는 플레이어는 상태 권한에 RPC를 보냅니다.
C#
    public void ToogleDoor()
    {
        Open(!IsOpened);
    }
    public void Open(bool isOpen)
    {
        if (Object.HasStateAuthority)
        {
            IsOpened = isOpen;
        }
        else
        {
            RPC_Open(isOpen);
        }
    }
    [Rpc(sources:RpcSources.All, targets: RpcTargets.StateAuthority)]
    public void RPC_Open(bool isOpen)
    {
        IsOpened = isOpen;
    }
문 상태(열림 또는 닫힘)은 네트워크 부울 변수인 IsOpened를 통해 네트워크에서 동기화됩니다.
OnIsOpenedChange() 메소드는 IsOpened이 변경될 때 호출됩니다.
C#
[Networked(OnChanged = nameof(OnIsOpenedChange))]
public NetworkBool IsOpened { get; set; } = true;
static void OnIsOpenedChange(Changed<AudioDoor> changed)
{
    changed.Behaviour.OnIsOpenedChange();
}
OnIsOpenedChange() 메소드는 문으로 분리된 룸의 격리 상태를 변경합니다.
그런 다음 룸은 룸에 위치한 플레이어에게 격리 상태를 알려줍니다. 즉, 룸이 격리된 경우 DynamicAudioGroupMember의 additionalGroupFilter가  roomId로 설정됩니다.
이러한 방식으로, 룸에 있는 플레이어는 정의된 거리 제한 내에 있는 경우에도 룸 구성원의 말만 듣고 다른 플레이어의 말은 듣지 않습니다.
OnStatusChange() 이벤트는 도어 상태가 변경되었을 때 생성됩니다.
의존성
Dynamic Audio Group 버전 1.0.0
다운로드
이 애드온의 최신 버전은 애드온 프로젝트에 포함되어 있습니다.
지원하는 토폴로지
- 공유 모드
- 호스트 모드
변경 내역
- 버전 1.0.0 (2023/07/06) : 최초 릴리즈