處理體驗中的文字聊天,包括管理頻道、裝飾消息、過濾文本、創建命令和開發自訂聊天界面。
要了解更多內容,請參閱 體驗內容聊天。
概要
屬性
決定是否要完全啟用 TextChatService 或採用傳統聊天系統。
決定是否建立預設 TextChatService 。
決定是否建立預設 TextChatService 。
方法
顯示提供的零件或玩家角色上方的聊天泡泡。
決定是否允許用戶在體驗中與其他用戶直接聊天,並且在其親子保護設定中設定。
活動
發生在 TextChatService:DisplayBubble() 被呼叫時。
發射時 TextChannel:DisplaySystemMessage() 在客戶端呼叫,或者當客戶端從服務伺服器收到有效的 TextChannel:SendAsync() 回應時。
發射時間,當 TextChannel:SendAsync() 由發送客戶自動稱用。
回調
屬性
ChatTranslationEnabled
ChatVersion
決定是否要完全啟用 TextChatService 或恢復到傳統聊天系統。將此屬性設置為 Enum.ChatVersion.LegacyChatService 將有效地禁用 TextChatService。
CreateDefaultCommands
決定是否建立預設 TextChatService 。
如果是,TextChatCommands 會創建並放置在 Folder 內的 TextChatCommands ,名為 1>TextChatCommands1> 裡面的 4>TextChatService4> 裡。
<tbody><tr><td><b>RBXClearCommand</b></td><td>清除</td><td>cls</td><td>清除本地用戶的聊天記錄。</td><td><code>/cls</code></td></tr><tr><td><b>RBXConsoleCommand</b></td><td>控制器</td><td /><td>開啟開發者控制器。</td><td><code>/console</code></td></tr><tr><td><b>RBXEmoteCommand</b></td><td>動作</td><td>e</td><td>播放一個虛擬人偶動作。</td><td><code>/e跳舞</code></td></tr><tr><td><b>RBXHelpCommand</b></td><td>協助助</td><td>?</td><td>顯示聊天指令清單。</td><td><code>/幫助</code></td></tr><tr><td><b>RBXMuteCommand</b></td><td>靜音</td><td>分</td><td>使用者被其 <code>Class.Player.Name|Name</code> 或 <code>Class.Player.DisplayName|DisplayName</code> 在所有 <code>Class.TextChannel|TextChannels</code> 中靜音。</td><td><code>/m 使用者名稱</code></td></tr><tr><td><b>RBXTeamCommand</b></td><td>團隊</td><td>t</td><td>進入團隊聊天模式,討論只對團隊成員可見。</td><td><code>/t</code></td></tr><tr><td><b>RBXUnmuteCommand</b></td><td>取消靜音</td><td>嗯</td><td>將使用者的 <code>Class.Player.Name|Name</code> 或 <code>Class.Player.DisplayName|DisplayName</code> 在所有 <code>Class.TextChannel|TextChannels</code> 中解除靜音。</td><td><code>/um 使用者名稱</code></td></tr><tr><td><b>RBXVersionCommand</b></td><td>版本</td><td>v</td><td>顯示聊天版本。</td><td><code>/version</code></td></tr><tr><td><b>RBXWhisperCommand</b></td><td>悄悄話嗚</td><td>w</td><td>進入其他 <code>Class.Player</code> 的傾聽模式。</td><td><code>/w 顯示名稱</code> 或 <code>/w @Username</code></td></tr></tbody>
名稱 | 主要別名 | 次要名稱 | 說明 | 使用範例 |
---|
注意,即使 TextChatCommands 是真的,你還是可以編輯、建立、創作和移除 CreateDefaultCommands。也注意,靜音和恢復靜音對於所有 TextChannels 適用。
CreateDefaultTextChannels
決定
<tbody><tr><td><b>RBXGeneral</b></td><td><code>Class.TextChannel 為玩家訊息。 在聊天窗口中,訊息被修改為讓 <code>Class.TextChatMessage.PrefixText|PrefixText</code> 獲得一個 <a href="../../../ui/rich-text.md">rich text</a> 字體顏色標��,以給給玩家獨特的名稱顏色。 如果</code>0> Class.Player.Team 存在,那麼 </td></tr><tr><td><b>RBXSystem</b></td><td><code>Class.TextChannel</code> 對於系統訊息。 在聊天窗口中,訊息是以 <code>Class.TextChatMessage.Text</code> 的淺灰色標籤預設為,或者 red 標籤,如果 <code>Class.TextChatMessage.Metadata</code> 包含 0>“錯誤”0> 字元。</td></tr><tr><td><b>RBXTeam\[BrickColor]</b></td><td> Class.TextChannel 為團隊專用玩家訊息,創造於使用任何 <code>Class.Team</code> 服務的 <code>Class.TextSource|TextSource</code> 與 0>Neutral0> 玩家,讓 3>Class.Team3> 與 <code>6>Neutral</code>6> 玩家無法使用。</td></tr><tr><td><b>RBXWhisper:\[userId1]\_\[userId2]</b></td><td><code>Class.TextChannel</code> 用於兩個玩家之間的哂臉訊息,創建時會在玩家使用 /</td></tr></tbody>
頻道 | 說明 |
---|
注意,預設 TextChannel.OnIncomingMessage 回報可以被覆蓋。 也注意,您可以編輯、創建立、創作和移除 TextChannels 即使 CreateDefaultTextChannels 是真的。
不同的文字頻道訊息可以在聊天窗口使用 ChannelTabsConfiguration 分別在不同的標籤中。
方法
DisplayBubble
在提供的方塊或玩家角色上顯示聊天泡泡,並且在此方法中指定的參數下發射 BubbleDisplayed 事件。可以顯示非玩家角色 (NPC) 的泡泡,如果你在角色中指定了一個方塊,例如它的頭部。
注意:此方法只適用於 LocalScript 或 Script 中使用,或在 RunContext 裡的 1>Class.Script.RunContext1> 。
參數
返回
CanUsersDirectChatAsync
決定用戶是否有權在體驗中與其他用戶直接聊天,並且在其親子保護設定中設定。要使用時:
- 通訊線是由用戶發起 (而不是開發人員或遊戲開發人員發起)
- 通訊資訊的存取是關閉的,且受限
參數
返回
範例程式碼
local TextChatService = game:GetService("TextChatService")
local directChatParticipants = TextChatService:CanUsersDirectChatAsync(userId1, { userId2 })
-- Check for eligible participants
if #directChatParticipants > 0 then
local directChannel = Instance.new("TextChannel")
directChannel.Parent = TextChatService
for _, participant in directChatParticipants do
directChannel:AddUserAsync(participant)
end
return directChannel
end
warn("Could not create TextChannel. Not enough eligible users.")
return nil
活動
MessageReceived
喜歡 TextChannel.MessageReceived ,發生在客戶端呼叫 TextChannel:DisplaySystemMessage() 或收到服務伺服器發出的有效 TextChannel:SendAsync() 回應時。此事件只在客戶端發生。
如果服務伺服器的 TextChannel.ShouldDeliverCallback 屬性是綁定的,並且返回 false ,客戶將不會發射 TextChatService.MessageReceived。
使用 TextChatMessage 參數取得 TextSource 和訊息的文字 (含 TextChatMessage.Text)。
Class.TextChatMessage 參數是指任何綁定到 TextChatService.OnIncomingMessage 或 TextChannel.OnIncomingMessage 的函數的最終結果。
參數
收到的 TextChatMessage 。
SendingMessage
發射時發生,當發送客戶端呼叫 TextChannel:SendAsync() 時。使用此來允許使用者在等待服務器回應 TextChannel:SendAsync() 時顯示預置訊息。