消息显示事件工作类 (Event_MessageWorkClass)

功能说明

Event_MessageWorkClass 是一个用于在游戏界面上显示文本消息的事件工作类。它提供灵活的配置选项,允许您定义消息的内容、显示类别(决定其在UI上的呈现方式)、文本颜色以及持续显示的时长。这使得开发者能够通过游戏事件轻松地向玩家传达提示、警告、剧情信息或任何其他文本内容。

该事件工作类通过 EventDef 中的 workClass 字段引用,其具体的行为由 parameter 字段中提供的 JSON 配置来控制。

可用参数

Event_MessageWorkClass 通过解析 EventDefparameter 字段里的 JSON 配置来工作。此 JSON 配置对应 MessageData

JSON参数名XML参数名 (N/A)类型默认值说明
messageN/A字符串必需。要显示的消息文本内容。
typeN/APromptDisplayCategory必需。消息的显示类别,决定了消息在UI中的呈现方式。请参见下方的 PromptDisplayCategory 枚举说明。
colorN/A字符串null可选。消息文本的颜色。必须是一个有效的HTML颜色字符串格式(例如 "#RRGGBB""#RRGGBBAA")。如果省略,将使用系统默认颜色。
showTimeN/A浮点数null可选。消息在屏幕上显示的持续时长(秒)。如果省略,将使用 DisplayMessage API 的默认时长(通常为3秒)。

PromptDisplayCategory (枚举)

PromptDisplayCategory 枚举定义了消息的不同显示类别,这将影响消息在游戏界面上的具体呈现方式(例如位置、大小、动画等)。

  • 请查阅具体游戏UI系统文档以获取 PromptDisplayCategory 的详细枚举值及其对应的显示效果。
    • 示例可能的枚举值(实际请以游戏代码为准):
      • SystemMessage: 系统通知,通常位于屏幕中央或顶部。
      • Warning: 警告信息,可能以黄色或红色高亮显示。
      • QuestUpdate: 任务更新提示。
      • Dialogue: 对话或剧情文本。
      • FloatingText: 浮动在实体上方的文本,如伤害数字。

示例

以下是 EventDef 的示例,展示了 Event_MessageWorkClass 的不同用法:

<Define>
    <!-- 假设 PromptDisplayCategory 枚举类型包含 SystemMessage, Warning, QuestUpdate 值 -->

    <!-- 示例1: 显示一个普通的系统消息 -->
    <EventDef>
        <defName>ShowSystemWelcomeMessage</defName>
        <label>显示欢迎消息</label>
        <description>在游戏开始时显示一条欢迎系统消息。</description>
        <workClass>Event_MessageWorkClass</workClass>
        <parameter>
        {
            "message": "欢迎来到奇幻世界!",
            "type": "SystemMessage"
        }
        </parameter>
    </EventDef>

    <!-- 示例2: 显示一个红色的警告消息,持续5秒 -->
    <EventDef>
        <defName>ShowCriticalWarning</defName>
        <label>显示严重警告</label>
        <description>在发生严重错误时显示红色警告。</description>
        <workClass>Event_MessageWorkClass</workClass>
        <parameter>
        {
            "message": "危险!敌人正在逼近!",
            "type": "Warning",
            "color": "#FF0000",
            "showTime": 5.0
        }
        </parameter>
    </EventDef>

    <!-- 示例3: 显示一个绿色的任务更新消息 -->
    <EventDef>
        <defName>ShowQuestCompleted</defName>
        <label>显示任务完成提示</label>
        <description>任务完成后显示绿色提示。</description>
        <workClass>Event_MessageWorkClass</workClass>
        <parameter>
        {
            "message": "主线任务:探索之始 完成!",
            "type": "QuestUpdate",
            "color": "#00FF00"
        }
        </parameter>
    </EventDef>
</Define>

复杂参数说明

parameter 字段 (JSON配置)
  • 说明EventDef 中的 parameter 字段是一个特别说明,它不使用标准的XML元素赋值方式,而是直接作为文本内容包含一个JSON格式的字符串。这个JSON字符串包含了 MessageData 的所有配置参数,用于指导 Event_MessageWorkClass 的具体行为。您需要确保提供的JSON字符串是语法正确的,并且其内容符合 MessageData 的结构。
  • JSON属性与C#映射关系
    • 所有JSON属性名(如 message, type 等)与C#内部数据类 MessageData 中的对应属性名一致(JSON通常使用驼峰式命名)。
  • 枚举值的JSON表示: 在JSON中,枚举类型 PromptDisplayCategory 的值应以其字符串名称来表示。
    • 例如:"type": "SystemMessage"
color 字段 (HTML颜色字符串)
  • 说明:如果需要为消息文本指定颜色,可以使用 color 字段。这个字段的值必须是有效的HTML颜色字符串
    • 支持的格式
      • "#RRGGBB":六位十六进制RGB值,例如 "#FF0000" (红色)。
      • "#RRGGBBAA":八位十六进制RGBA值(包含透明度),例如 "#00FF0080" (半透明绿色)。
    • 注意事项:如果您提供的颜色字符串格式不正确,Event_MessageWorkClass 在初始化时会报错,导致事件无法运行。