主题
GameSystemUI.ChatSystem
ChatMessage 双端
命名空间 GameSystemUI.ChatSystem
csharp
public class ChatMessage构造函数
ChatMessage 双端
csharp
public ChatMessage()属性
MessageId 双端
csharp
public Guid MessageId { get; set; }消息唯一标识符 - 由服务端生成 用途:
- 防止重复接收(客户端去重)
- 消息引用(回复、转发)
- 消息编辑/删除的定位
- 已读回执追踪
SenderID 双端
csharp
public int? SenderID { get; set; }ReceiverID 双端
csharp
public int? ReceiverID { get; set; }Type 双端
csharp
public ChatMessageType Type { get; set; }Timestamp 双端
csharp
public DateTime Timestamp { get; set; }消息时间戳(UTC) - 由服务端设置 客户端显示时需转换为本地时区
Content 双端
csharp
public string Content { get; set; }方法
ToString 双端
csharp
public override string ToString()ChatMessageType 双端
命名空间 GameSystemUI.ChatSystem
csharp
public readonly struct ChatMessageType : IGameClass, IExtendableEnum<ChatMessageType>, IExtendableEnum, IExtendedEnum, ISyncIdOwner方法
ToString 双端
csharp
public override string? ToString()operator == 双端
csharp
public static bool operator ==(ChatMessageType left, ChatMessageType right)operator != 双端
csharp
public static bool operator !=(ChatMessageType left, ChatMessageType right)Equals 双端
csharp
public override bool Equals(object? obj)GetHashCode 双端
csharp
public override int GetHashCode()OnRegisterGameClass 双端
csharp
public static void OnRegisterGameClass()字段
InnerValue 双端
csharp
public readonly Enum InnerValuePrivate 双端
csharp
public static readonly ChatMessageType PrivateTeam 双端
csharp
public static readonly ChatMessageType TeamAll 双端
csharp
public static readonly ChatMessageType AllWorld 双端
csharp
public static readonly ChatMessageType WorldSystem 双端
csharp
public static readonly ChatMessageType SystemChatSystemClient 仅客户端
命名空间 GameSystemUI.ChatSystem
csharp
public static class ChatSystemClient方法
OnRegisterGameClass 仅客户端
csharp
public static void OnRegisterGameClass()SendMessage 仅客户端
csharp
public static Task SendMessage(ChatMessage message)统一的消息发送方法
message— 要发送的聊天消息
SendMessagePrivate 仅客户端
csharp
public static Task SendMessagePrivate(Player player, string message)发送私聊消息(便捷方法)
SendMessageTeam 仅客户端
csharp
public static Task SendMessageTeam(string message)发送队伍消息(便捷方法)
SendMessageAll 仅客户端
csharp
public static Task SendMessageAll(string message)发送全体消息(便捷方法)
SendMessageWorld 仅客户端
csharp
public static Task SendMessageWorld(string message)发送世界消息(便捷方法)
字段
OnChatMessageReceived 仅客户端
csharp
public static EventHandler<ChatMessage>? OnChatMessageReceivedOnLocalSystemMessageSent 仅客户端
csharp
public static EventHandler<ChatMessage>? OnLocalSystemMessageSentOnServerMessageReceived 仅客户端
csharp
public static Trigger<EventServerMessage>? OnServerMessageReceivedChatSystemServer 仅服务端
命名空间 GameSystemUI.ChatSystem
csharp
public static class ChatSystemServer方法
OnRegisterGameClass 仅服务端
csharp
public static void OnRegisterGameClass()IsValidMessage 仅服务端
csharp
public static bool IsValidMessage(ChatMessage message)验证消息是否有效
SendMessagePrivate 仅服务端
csharp
public static void SendMessagePrivate(ChatMessage message)SendMessageTeam 仅服务端
csharp
public static void SendMessageTeam(ChatMessage message)SendMessageAll 仅服务端
csharp
public static void SendMessageAll(ChatMessage message)SendMessageSystem 仅服务端
csharp
public static void SendMessageSystem(ChatMessage message, Func<Player, bool> filter)字段
OnChatMessageReceived 仅服务端
csharp
public static EventHandler<ChatMessage>? OnChatMessageReceived聊天消息接收事件 - 服务端 在消息处理完成、转发之前触发 可用于:消息日志记录、统计、审核等扩展功能
EChatMessageType 双端
命名空间 GameSystemUI.ChatSystem
csharp
public enum EChatMessageType枚举值
PrivateTeamAllWorldSystem
ScopeData 仅客户端
命名空间 GameSystemUI.ChatSystem
csharp
public class ScopeData : IGameClass构造函数
ScopeData 仅客户端
csharp
public ScopeData()方法
OnRegisterGameClass 仅客户端
csharp
public static void OnRegisterGameClass()ChatEntrance 仅客户端
命名空间 GameSystemUI.ChatSystem.Advanced
csharp
public class ChatEntrance : Panel构造函数
ChatEntrance 仅客户端
csharp
public ChatEntrance(ChatWindow chatWindow)字段
chatWindow 仅客户端
csharp
public ChatWindow chatWindowChatInputPanel 仅客户端
命名空间 GameSystemUI.ChatSystem.Advanced
csharp
public class ChatInputPanel : Panel构造函数
ChatInputPanel 仅客户端
csharp
public ChatInputPanel()创建输入面板,使用默认频道配置
ChatInputPanel 仅客户端
csharp
public ChatInputPanel(Dictionary<ChatMessageType, string>? customChannelConfig)创建输入面板,使用自定义频道配置
customChannelConfig— 自定义频道配置,如果为 null 则使用默认配置
属性
HasValidInput 仅客户端
csharp
public bool HasValidInput { get; }CurrentChannel 仅客户端
csharp
public ChatMessageType CurrentChannel { set; }方法
ClearInput 仅客户端
csharp
public void ClearInput()事件
OnChannelChanged 仅客户端
csharp
public event Action<ChatMessageType>? OnChannelChangedOnSendMessage 仅客户端
csharp
public event EventHandler? OnSendMessage字段
InputText 仅客户端
csharp
public string InputTextChatMessageUI 仅客户端
命名空间 GameSystemUI.ChatSystem.Advanced
csharp
public class ChatMessageUI : Panel构造函数
ChatMessageUI 仅客户端
csharp
public ChatMessageUI()属性
Message 仅客户端
csharp
public string? Message { get; set; }ChatRecord 仅客户端
命名空间 GameSystemUI.ChatSystem.Advanced
csharp
public class ChatRecord : PanelScrollable构造函数
ChatRecord 仅客户端
csharp
public ChatRecord()方法
AddMessage 仅客户端
csharp
public void AddMessage(string message)ChatWindow 仅客户端
命名空间 GameSystemUI.ChatSystem.Advanced
csharp
public class ChatWindow : Panel, IGameObject<GameDataControlChatWindow>, IGameObject构造函数
ChatWindow 仅客户端
csharp
public ChatWindow()无参构造函数 - 用于直接创建(不使用 GameData)
ChatWindow 仅客户端
csharp
public ChatWindow(IGameLink<GameDataControlChatWindow> link)GameData 构造函数 - 通过 GameData 创建时使用
属性
ChannelConfig 仅客户端
csharp
public Dictionary<ChatMessageType, string>? ChannelConfig { get; set; }Link 仅客户端
csharp
public new IGameLink<GameDataControlChatWindow> Link { get; }Cache 仅客户端
csharp
public new GameDataControlChatWindow Cache { get; }字段
DefaultTemplate 仅客户端
csharp
public new static readonly IGameLink<GameDataControlChatWindow> DefaultTemplateBackgroundImage 仅客户端
csharp
public Image BackgroundImagePlayerItem 仅客户端
命名空间 GameSystemUI.ChatSystem.Advanced
csharp
public class PlayerItem : Panel, IGameObject<GameDataPlayerItem>, IGameObject构造函数
PlayerItem 仅客户端
csharp
public PlayerItem()PlayerItem 仅客户端
csharp
public PlayerItem(IGameLink<GameDataPlayerItem> link)属性
AvatarFrame 仅客户端
csharp
public Image AvatarFrame { get; set; }Avatar 仅客户端
csharp
public Image Avatar { get; set; }NameplateBackground 仅客户端
csharp
public Image NameplateBackground { get; set; }MuteButtonImage 仅客户端
csharp
public Image MuteButtonImage { get; set; }TeamNumber 仅客户端
csharp
public string? TeamNumber { get; set; }Nickname 仅客户端
csharp
public string? Nickname { get; set; }UnitDisplayName 仅客户端
csharp
public string? UnitDisplayName { get; set; }ShowDivider 仅客户端
csharp
public bool ShowDivider { get; set; }Link 仅客户端
csharp
public new IGameLink<GameDataPlayerItem> Link { get; }Cache 仅客户端
csharp
public new GameDataPlayerItem Cache { get; }方法
UpdateBlockStatus 仅客户端
csharp
public void UpdateBlockStatus(bool isBlocked)字段
DefaultTemplate 仅客户端
csharp
public new static readonly IGameLink<GameDataPlayerItem> DefaultTemplateOnMuteButtonClick 仅客户端
csharp
public Action<Panel>? OnMuteButtonClickPlayerList 仅客户端
命名空间 GameSystemUI.ChatSystem.Advanced
csharp
public class PlayerList : PanelScrollable构造函数
PlayerList 仅客户端
csharp
public PlayerList()属性
IsBlockAllPlayersEnabled 仅客户端
csharp
public bool IsBlockAllPlayersEnabled { get; }方法
Update 仅客户端
csharp
public void Update()IsPlayerBlocked 仅客户端
csharp
public bool IsPlayerBlocked(int playerId)ToggleBlockAllPlayers 仅客户端
csharp
public void ToggleBlockAllPlayers()CheckMessageBlocked 仅客户端
csharp
public bool CheckMessageBlocked(ChatMessage message)PlayerListTitle 仅客户端
命名空间 GameSystemUI.ChatSystem.Advanced
csharp
public class PlayerListTitle : Panel构造函数
PlayerListTitle 仅客户端
csharp
public PlayerListTitle()属性
Title 仅客户端
csharp
public string? Title { get; set; }TabType 仅客户端
命名空间 GameSystemUI.ChatSystem.Advanced
csharp
public enum TabType枚举值
ChatRecordPlayerList
GameDataControlChatWindow 双端
命名空间 GameSystemUI.ChatSystem.Data
csharp
public class GameDataControlChatWindow : GameDataControlPanel, IGameData<GameDataControlChatWindow>, IGameDataChatWindow 的 GameData 配置类 双端通用的数据配置
构造函数
GameDataControlChatWindow 双端
csharp
public GameDataControlChatWindow(GameLink<GameDataControl, GameDataControlChatWindow> link)GameDataControlChatWindow 双端
csharp
public GameDataControlChatWindow(IGameLink<GameDataControlChatWindow> link)属性
ChannelConfig 双端
csharp
public Dictionary<ChatMessageType, string>? ChannelConfig { get; set; }频道配置字典 示例:{ { ChatMessageType.All, "全体" }, { ChatMessageType.Team, "队伍" } }
Link 双端
csharp
public new IGameLink<GameDataControlChatWindow> Link { get; }方法
CreateControl 仅客户端
csharp
public override Control CreateControl()ApplyTo 仅客户端
csharp
public override void ApplyTo(Control control)GameDataPlayerItem 仅客户端
命名空间 GameSystemUI.ChatSystem.Data
csharp
public class GameDataPlayerItem : GameDataControlPanel, IGameData<GameDataPlayerItem>, IGameData构造函数
GameDataPlayerItem 仅客户端
csharp
public GameDataPlayerItem(GameLink<GameDataControl, GameDataPlayerItem> link)GameDataPlayerItem 仅客户端
csharp
public GameDataPlayerItem(IGameLink<GameDataPlayerItem> link)属性
AvatarFrame 仅客户端
csharp
public Image AvatarFrame { get; set; }Avatar 仅客户端
csharp
public Image Avatar { get; set; }NameplateBackground 仅客户端
csharp
public Image NameplateBackground { get; set; }Link 仅客户端
csharp
public new IGameLink<GameDataPlayerItem> Link { get; }方法
CreateControl 仅客户端
csharp
public override Control CreateControl()CreatePlayerItem 仅客户端
csharp
public PlayerItem CreatePlayerItem()