채팅 버블
이 애드온은 바로 사용할 수 있는 채팅 버블을 제공합니다. 같은 버블 안에 있는 사람들은 다른 멤버들과 이야기할 수 있습니다.
정적 채팅 버블
정적 채팅 버블은 씬에서 특정 위치에 배치된 룸입니다.
채팅 버블에 대한 접근은 버튼으로 수동으로 잠글 수도 있고 최대 사용자 매개 변수에 도달하면 자동으로 잠글 수도 있습니다.
동일한 버튼으로 잠금을 해제하거나 마지막 플레이어가 채팅 버블을 떠날 때 잠금을 해제할 수 있습니다.
버블 메시의 재질은 잠금 상태에 따라 다릅니다.
ChatBubble
Chatbubble
클래스는 채팅 버블을 관리합니다.
각 버블은 다양한 모양(구형, 원, 정육면체)을 가질 수 있고 최대 용량 파라미터를 갖습니다. 이 최대 용량에 도달하면 버블에 접근할 수 없습니다.
Chatbubble
은 IAudioRoom
인터페이스를 구현하여 AudioRoomManager
에 등록합니다.
또한 IAudioRoomListener
인터페이스 덕분에 AudioRoomMember
가 AudioRoom
에 들어가거나 떠날 때 클래스에게 알려지므로 채팅 버블 멤버 목록을 업데이트할 수 있습니다(로컬 사용자는 사용자 네트워크 장비에 AudioRoomMember
컴포넌트가 있어야 합니다).
ChatBubbleMember
AudioRoomMember
에서 상속받은 이 클래스는 플레이어의 네트워크 리그에 추가되어야 합니다.
여기에는 채팅 버블을 동기화하기 위한 ChangeDetector
가 포함되어 있는데, 만약 이 오디오 룸 멤버가 입력한 오디오 룸이 채팅 버블이라면, 늦게 참여한 플레이어는 일반적인 체크를 거치지 않고도 정보를 받을 수 있습니다.
예를 들어, 늦게 참여한 플레이어의 관점에서 버블 진입이 금지된 경우(예를 들어 잠김이 true인 경우) 필요합니다.
또한 RoomChange
메소드 덕분에 플레이어가 채팅 버블에 들어가면 roomID
가 오디오 필터에 추가됩니다(DynamicAudioGroupMember
에서 닫힌 두 사용자에게 필요한 추가 기준은 서로 들을 수 있습니다).
ChatBubbleLocomotionValidator
ChatBubbleLocomotionValidator
는 ILocomotionValidator
인터페이스를 구현합니다.
따라서 플레이어가 채팅 버블(채팅 버블이 가득 차지 않음)에 들어갈 수 있는지 확인할 수 있습니다.
allowedToMoveToChatBubbles
설정은 특정 플레이어가 채팅 버블(예: 봇)에 들어가는 것을 방지하기 위해 사용됩니다.
플레이어의 네트워크 리그에 이 클래스를 추가해야 합니다.
동적 채팅 버블
동적 채팅 버블은 특정 유형의 채팅 버블입니다. 두 플레이어가 서로 가깝게 있으면 자동으로 생성됩니다.
DynamicChatBubbleSpawner
DynamicChatBubbleSpawner
는 두 플레이어가 서로 가까울 때 동적 채팅 버블 프리팹을 생성하는 역할을 합니다(이 거리는 proximityDistance
파라미터로 정의됩니다).
프리팹은 PlayerId
가 가장 낮은 플레이어에 의해 생성됩니다.
동적 채팅 버블에 위치한 마지막 두 플레이어 간의 거리가 증가하여 제한치를 초과하면 동적 채팅 버블이 파괴됩니다.
스폰 플레이어가 채팅 버블을 떠나고 다른 여러 플레이어가 채팅 버블에 남아 있는 경우 채팅 버블은 파괴되지 않습니다.
플레이어의 네트워크 리그에 이 클래스를 추가해야 합니다.
DynamicChatBubble
DynamicChatBubble
은 ChatBubble
에서 상속됩니다. 이는 채팅 버블이 스폰/스폰 해제될 때 DynamicChatBubbleManager
에서 동적 채팅 버블을 등록/등록 해제하는 데 사용됩니다.
DynamicChatBubbleManager
DynamicChatBubbleManager
는 DynamicChatBubble
의 풀을 관리합니다.
플레이어가 DynamicChatBubble
을 생성하면 dynamicChatBubbles
목록에 추가됩니다.
플레이어 간의 거리가 변경되는 즉시 채팅 버블을 생성하고 파괴하는 오버헤드를 피하기 위해 빈 동적 채팅 버블을 emptyBubbleConservationDuration
동안 보존합니다.
의존성
- AudioRoom 애드온
- Touch-Hover 애드온
데모
데모 씬은 Assets\Photon\FusionAddons\ChatBubble\Demo\Scenes\
폴더에 있습니다.
다운로드
이 애드온의 최신 버전은 애드온 프로젝트에 포함되어 있습니다.
지원되는 토폴로지
- 공유 모드
변경 이력
- 버전 2.0.0: 최초 릴리즈