一种处理在体验中的聊天文字,包括管理频道、装饰消息、过滤文本、创建命令和开发自定义聊天界面。
了解更多信息,请参阅体验内嵌文字聊天。
概要
属性
确定是否完全启用 TextChatService 或恢复到传统聊天系统。
决定是否创建默认 TextChatService 。
决定是否创建 TextChatService 默认 TextChannels。
方法
显示提供的部分或玩家角色上方的聊天泡泡。
根据用户的家长控制设置,是否允许用户直接与其他用户聊天。
活动
发生在 TextChatService:DisplayBubble() 被调用时。
客户端调用 TextChannel:DisplaySystemMessage() 或从服务器收到有效的 TextChannel:SendAsync() 回应时触发。
发生在 TextChannel:SendAsync() 被发送客户端调用时。
回调
属性
ChatTranslationEnabled
ChatVersion
决定是否完全启用 TextChatService 或恢复到传统聊天系统。将此属性设置为 Enum.ChatVersion.LegacyChatService 可以有效地禁用 TextChatService。
CreateDefaultCommands
决定是否创建默认 TextChatService 。
如果真是如此,那么以下 TextChatCommands 将被创建并放置在 Folder 中,其名为 TextChatCommands 在 2>Class.TextChatService2> 内:
<tbody><tr><td><b>RBXClearCommand</b></td><td>清除</td><td>类</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> 中 mute 用户。</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>在 Class.Player.Name|Name 或 <code>Class.Player.DisplayName|DisplayName</code> 中,取消用户的 <code>Class.Player.Name|Name</code> 或 1>Class.Player.DisplayName|显示名称1> 在所有 4>Class.TextChannel|TextChannels4> 中。</td><td><code>/um 用户名</code></td></tr><tr><td><b>RBX版本命令</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 DisplayName</code> 或 <code>/w @Username</code></td></tr></tbody>
名称 | 主要别名 | 次要别名 | 描述 | 示例使用 |
---|
注意,您可以编辑、创建 or 创作和移除 TextChatCommands 即使 CreateDefaultCommands 是真的。还注意,TextChannels 对于所有 1> Class.TextChatService.CreateDefaultCommands|CreateDefaultCommands1> 适用。
CreateDefaultTextChannels
确定 Class
<tbody><tr><td><b>RBXGeneral</b></td><td> Class.TextChannel 对玩家消息。 在聊天窗口中,消息被修改为让 <code>Class.TextChatMessage.PrefixText|PrefixText</code> 收到一个 <a href="../../../ui/rich-text.md">富文本</a> 字体标签来给聊天玩家提供其独特的名称颜色。 如果 0> Class.Player.Team0> 存在,那么 3> Class.Team.TeamColor\</</td></tr><tr><td><b>RBXSystem</b></td><td><code>Class.TextChannel</code> 对系统消息。在聊天窗口中,消息被修改为系统默认的<code>Class.TextChatMessage.Text</code>,或红色标签,如果<code>Class.TextChatMessage.Metadata</code>包含0>“错误”0>。</td></tr><tr><td><b>RBXTeam\[BrickColor]</b></td><td><code>Class.TextChannel</code> 对于团队的玩家消息,创建时一个 Class.Player.TeamColor 属性的 1>Class.TextSource1> 为所有的非 4>Class.Player.Neutral4> 玩家,可让他们使用仅限于团</td></tr><tr><td><b>RBXWhisper:\[userId1]\_\[userId2]</b></td><td><code>Class.TextChannel</code> 用于两个玩家之间的暗示消息,创建于一名玩家使用 /</td></tr></tbody>
频道 | 描述 |
---|
注意,默认 TextChannel.OnIncomingMessage 回调可以被覆盖。还注意到您可以编辑、创创建 or 创作和移除 TextChannels 即使 CreateDefaultTextChannels 是真的。
不同的文字频道消息可以在聊天窗口中使用 ChannelTabsConfiguration 来分为不同的选项卡。
方法
DisplayBubble
将聊天气泡显示在提供的部分或玩家角色上,并且发射 BubbleDisplayed 事件,并使用此方法指定的参数显示泡泡给非玩家角色 (NPC) 显示泡泡。 可以显示非玩家角色 (NPC) 的泡泡,如果你在角色中指定了一个部分,例如它的头部。
注意,此方法仅在 LocalScript 或 Script 中使用,或在 RunContext 的 1>Class.Script.RunContext|RunContext1> 中使用 4>Class.Script.Run4> 。
参数
返回
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() 时显示占位符消息。
参数
Class.TextChatMessage 从 TextChannel:SendAsync() 调用。