This document is about: FUSION 2
SWITCH TO

Chat Bubble


Available in the Industries Circle
Circle
Fusion行業原型附加元件

這個附加元件提供已經準備好使用的聊天氣泡。在相同的氣泡中的人可以與其他成員討論。

聊天氣泡在音訊房間動態音訊群附加元件上組建:聊天氣泡是特別的音訊房間,它分隔了在動態音訊群成員在足夠靠近時可以開始接聽彼此時的空間。

Fusion Chat Bubble

靜態聊天氣泡

靜態聊天氣泡是一個房間,位於場景中的特定位置。
可以手動透過一個按鈕或當達到最大人員參數時自動地鎖定到聊天氣泡的存取。
可以透過相同的按鈕解鎖它,或在最後一個玩家離開聊天氣泡時解鎖它。
氣泡網格的材質取決於鎖定狀態。

設定

場景必須含有:

  • 一個AudioRoomManager元件

玩家已生成預製件應該含有:

  • 一個ChatbubbleMember元件
  • 一個DynamicAudioGroupMember元件
  • 一個NetworkLocomotionValidation元件,來自運動驗證附加元件,或任何其他觸發ILocomotionObserver.OnDidMove的元件

聊天氣泡物件本身應該含有:

  • 一個Chatbubble元件

聊天氣泡

Chatbubble類別管理聊天氣泡。
各個氣泡可以有各種形狀(球體、圓形或方塊),並且有一個最大容量參數。如果達到最大容量,則無法進入氣泡。
Chatbubble執行IAudioRoom介面並且在AudioRoomManager上註冊其本身。
同時利用IAudioRoomListener介面,當一個AudioRoomMember進入或離開一個AudioRoom時告知該類別,這樣它可以更新聊天氣泡成員清單(本機使用者必須在其使用者已連網裝備上有一個AudioRoomMember元件,並且所需的ChatbubbleMember是它的其中一個子類別)。

聊天氣泡成員

這個類別繼承自AudioRoomMember,其必須被新增到玩家的已連網裝備。
它包含一個ChangeDetector以同步一個聊天氣泡,如果這個AudioRoomMember進入的音訊房間是一個Chatbubble,則允許延遲加入者在不通過常規檢查的情況下接收資訊。
舉例而言,從延遲加入者的角度來說禁止進入氣泡(比如鎖定為真),則需要它。
此外,利用RoomChange方法,當玩家進入一個聊天氣泡時,它的roomID被新增到音訊篩選器(為了讓兩個靠近的使用者可以聽到彼此,在DynamicAudioGroupMember中需要額外的標準)。

聊天氣泡運動驗證

ChatBubbleLocomotionValidator元件允許預防使用者移動到一個滿員的或已鎖定的聊天氣泡。

這個元件執行ILocomotionValidator介面。
所以它可以檢查玩家是否被允許進入聊天氣泡(聊天氣泡未滿員)。
請注意,allowedToMoveToChatBubbles設定用於防止特定玩家進入一個聊天氣泡(比如機器人)。
這個類別必須被新增到玩家的已連網裝備。

動態聊天氣泡

一個動態聊天氣泡是一個特定種類的聊天氣泡:當兩個玩家靠近彼此時,自動生成它。

Fusion Chat Bubble

設定

在常規聊天氣泡設定之外,需要這個額外的部分。

在這個場景中:

  • 一個DynamicChatBubbleManager元件

在玩家已生成預製件上:

  • 一個DynamicChatBubbleSpawner元件

在動態聊天氣泡預製件上:

  • 一個DynamicChatBubble元件
  • 一個NetworkTransform元件

動態聊天氣泡生成器

DynamicChatBubbleSpawner負責在兩個玩家靠近彼此時生成一個動態聊天氣泡預製件(這個距離由proximityDistance參數定義)。
預製件由附有最低的PlayerId的玩家來生成。
如果動態聊天氣泡中最後兩個玩家所在的位置的距離增加到超過限制的話,則銷毀動態聊天氣泡。
請注意,如果生成的玩家離開聊天氣泡,而多個其他玩家仍然在聊天氣泡中的話,則不會銷毀聊天氣泡。
這個類別必須被新增到玩家的已連網裝備。

動態聊天氣泡

DynamicChatBubble繼承自ChatBubble。當生成/銷毀聊天氣泡時,它用於在DynamicChatBubbleManager上註冊/取消註冊動態聊天氣泡。

動態聊天氣泡管理器

DynamicChatBubbleManager管理DynamicChatBubble的池。
當玩家生成一個DynamicChatBubble,它被新增到一個dynamicChatBubbles清單中。
為了避免在玩家的距離改變時,立即建立及銷毀聊天氣泡的額外負荷,針對emptyBubbleConservationDuration來保存一個空的動態聊天氣泡。

相依性

  • 音訊房間附加元件
  • 動態音訊群附加元件
  • 懸浮觸控附加元件
  • 運動驗證附加元件(在某些案例中可用)

示範

可在Assets\Photon\FusionAddons\ChatBubble\Demo\Scenes\資料夾中找到一個示範場景。

下載

這個附加元件的最新版本被包含在附加元件專案之中

已支援拓撲

  • 共享模式

更改記錄

  • 版本2.0.0:第一個版本
Back to top