Skip to content
写作:待补充更新:2026-05-16字数:—阅读:—维护:Azek431

创游世界对象 / 素材 / 组件 / 脚本关系总图

1. 文档定位

本文用于把目前知识库里已经分散整理出来的核心概念——对象、素材、组件、脚本、UI、广播、系统作用域——压缩成一张可理解的结构图。它不是逐页 OCR,而是面向“理解整个引擎工作方式”的总纲文档。

适合回答的问题:

  • 创游世界里的“素材”和“物体”到底有什么区别?
  • 组件是挂在哪一层的?
  • 脚本是属于对象、组件,还是系统?
  • UI 和地图逻辑是怎么接起来的?
  • 为什么很多功能都建议用广播来做?

2. 核心关系一句话概括

可以先用一句话理解:

素材是模板,物体是实例,组件是能力模块,脚本是行为逻辑,广播是解耦连接器,UI 是表现与输入界面,系统层负责跨对象与跨地图的全局流程。

如果把创游世界看成搭积木:

  • 素材:像预制件 / 模板
  • 物体:像被放进地图里的实际对象
  • 组件:像给对象装上的功能器官
  • 脚本:像这些器官和对象的行为规则
  • UI:像玩家看到和点击的控制面板
  • 广播:像对象之间互相传话的机制
  • 系统:像全局导演,控制胜负、切图、音频、计时器等

3. 总体结构图

text
创游世界项目
├─ 地图
│  ├─ 地图中的物体(实例)
│  │  ├─ 来源:某个素材
│  │  ├─ 挂载:若干组件
│  │  └─ 执行:对象/组件相关脚本
│  ├─ 地图属性
│  ├─ 地图广播
│  └─ 地图级生成 / 流程逻辑
├─ UI
│  ├─ 地图UI
│  ├─ 操作UI
│  ├─ 物体UI
│  └─ 通过广播 / 当前UI接口与地图逻辑交互
├─ 系统层
│  ├─ 胜负流程
│  ├─ 切换地图
│  ├─ 计时器
│  ├─ 音频 / BGM / 声音实例
│  └─ 联机 / 房间 / 全局状态
└─ 素材库
   ├─ 图片 / 贴图 / 文件夹
   ├─ 可复用素材
   └─ 组件配置的模板来源

4. 素材与物体:模板和实例

4.1 什么是素材

根据官方教程与现有 OCR 整理,素材更接近“可复用的基础资源 / 模板定义”。

素材层通常承载:

  • 图像或贴图资源
  • 初始属性
  • 可挂载的组件配置
  • 用来反复生成同类对象的基础定义

这也是为什么知识库里多次出现:

  • 修改素材属性后,地图里的已有物体不一定立刻变化
  • 需要“应用到原素材”或重新理解实例与模板的关系

4.2 什么是物体

物体是地图中的实际存在,是素材被放到地图后的实例。

物体层具有:

  • 自己当前时刻的状态
  • 自己所在地图中的位置、层级、交互关系
  • 挂载后的组件运行结果
  • 运行时被脚本修改后的动态属性

4.3 为什么修改素材不一定影响地图中的物体

因为很多情况下,地图里的物体不是“实时引用素材面板”,而是已经带着当时的配置被实例化出来了。

这意味着:

  • 素材更像“出生模板”
  • 物体更像“出生后的个体”

所以在项目设计上要特别注意:

  • 想批量复用某种能力时,要先把组件和通用配置收敛到素材模板层
  • 想改某个特定对象时,要确认你改的是实例,还是模板

5. 组件:对象能力的装配层

5.1 组件的本质

组件是对象的功能模块。它决定这个对象“能做什么”。

例如:

  • 生命组件:能有血量、受伤、死亡
  • 子弹组件:能发射、碰撞、造成效果
  • 货币组件:能记录货币数值
  • 近战武器组件:能进行近战攻击
  • 粒子特效组件:能产生视觉效果
  • UI 相关组件:能参与界面显示或交互

5.2 为什么组件重要

因为创游世界不是纯代码驱动的系统,而是明显偏向:

对象 = 基础实体,组件 = 能力组合,脚本 = 行为编排

这意味着你做功能时,不是从“写一大段代码”开始,而是先判断:

  1. 这个功能属于哪个对象?
  2. 这个对象需要哪些组件?
  3. 脚本应该绑定在哪个层级、响应什么触发时机?

5.3 自定义组件的意义

自定义组件进一步把“能力模块化”推进了一步。它不只是官方预置组件的补充,更像是你自己定义的、可复用的小系统。

它通常包含:

  • 属性
  • 指令
  • 触发时机 / 事件入口

其价值在于:

  • 复用
  • 统一接口
  • 降低重复搭积木成本
  • 让多个对象共享同一行为协议

6. 脚本:行为逻辑与数据流

6.1 脚本不是孤立存在的

脚本通常依附在某个上下文中执行,例如:

  • 对象脚本
  • 组件相关脚本
  • 地图脚本
  • 系统脚本
  • UI 侧逻辑

所以脚本不是一个脱离场景的“代码文件”,而是:

在特定作用域里,围绕某个对象/组件/系统能力执行的行为描述。

6.2 脚本真正解决什么问题

脚本主要负责:

  • 响应事件
  • 读写数据
  • 调用组件能力
  • 修改对象状态
  • 通知 UI
  • 驱动流程推进

也就是说:

  • 组件提供“能做什么”
  • 脚本决定“什么时候做、怎么做、做到什么程度”

6.3 常见错误理解

一个常见误区是把脚本当成唯一核心。

更准确地说,创游世界里真正的核心是:

对象结构 + 组件装配 + 脚本编排 + 作用域数据流

脚本只是其中一环。


7. 作用域:状态应该放在哪里

根据已有脚本资料,可把常用数据位置粗略分成四层:

7.1 局部层

  • 临时计算
  • 一次流程中的中间变量
  • 不需要跨对象共享的数据

7.2 自身层

  • 某个对象自己的状态
  • 例如:当前血量、是否翻滚中、攻击冷却、是否已拾取

7.3 地图层

  • 同一地图里多个对象共享的数据
  • 例如:当前波次、地图倒计时、地图级开关、地图内货币池

7.4 系统层

  • 跨地图、跨流程、全局控制数据
  • 例如:胜负、切图、总计时器、系统音频、联机房间级状态

7.5 一个实用原则

如果你不知道某个变量应该放哪里,可以先问:

  • 它只在一段逻辑里短暂使用吗?→ 局部
  • 它只属于某个物体吗?→ 自身
  • 它要让地图里很多对象都能读到吗?→ 地图
  • 它要控制整局流程或跨地图逻辑吗?→ 系统

8. UI:表现层与输入层

8.1 UI 不是地图逻辑本体

UI 更适合做:

  • 显示信息
  • 接收点击 / 交互输入
  • 呈现状态变化
  • 作为玩家和系统之间的中介面板

不推荐让 UI 直接承担太多核心业务逻辑。

8.2 UI 与地图逻辑的推荐关系

推荐结构通常是:

text
玩家操作UI
→ UI 触发事件
→ 广播 / 调用接口
→ 地图或对象逻辑处理
→ 修改状态
→ UI 刷新显示

这样做的好处:

  • UI 更容易替换
  • 地图逻辑更稳定
  • 联机 / 本地切换时更容易兼容
  • 不会把核心系统锁死在某个界面上

8.3 三种 UI 可以怎么理解

  • 地图UI:更偏场景级界面
  • 操作UI:更偏玩家操作入口
  • 物体UI:更偏绑定到对象或对象上下文的界面

9. 广播:对象之间的解耦连接器

广播在创游世界里非常关键,因为很多系统都不适合硬绑死调用路径。

广播适合解决:

  • UI 通知地图逻辑
  • 地图通知若干对象同步变化
  • 系统事件分发
  • 降低对象之间的直接依赖

例如:

  • 点击按钮后,不让 UI 直接改某个敌人的生命值
  • 而是 UI 发“开始战斗 / 使用技能 / 请求购买”广播
  • 真正的处理逻辑由地图或目标对象决定

这样做的优点:

  • 降耦合
  • 更适合多人协作
  • 更适合后期重构
  • 更容易复用同一套功能

10. 一个完整功能是如何跑起来的

以“点击按钮购买道具”为例,可以抽象成:

第一步:素材准备

  • 定义一个可购买道具素材
  • 挂载需要的组件

第二步:实例进入地图

  • 地图中出现商店物体或购买入口物体

第三步:UI 提供按钮

  • 玩家在 UI 中点击“购买”

第四步:通过广播或接口通知逻辑层

  • UI 发出“请求购买某道具”的信号

第五步:地图 / 系统脚本校验

  • 检查货币是否足够
  • 检查是否允许购买
  • 更新库存或生成道具

第六步:对象与状态更新

  • 扣除货币
  • 生成物体 / 添加道具
  • 更新自身或地图数据

第七步:UI 刷新

  • 价格、货币数、背包显示同步变化

这个流程里没有一个点是单独孤立的,而是涉及:

  • 素材
  • 物体
  • 组件
  • 脚本
  • UI
  • 广播
  • 作用域数据

这就是为什么建立“关系总图”非常重要。


11. 建知识库时最值得固定下来的主线

如果以后继续增强知识库,最值得一直坚持的主线是:

主线 A:模板与实例

  • 素材
  • 物体
  • 应用到原素材
  • 实例化差异

主线 B:能力装配

  • 官方组件
  • 自定义组件
  • 组件分类
  • 组件边界

主线 C:行为与数据流

  • 指令
  • 脚本
  • 触发时机
  • 变量作用域
  • 地图与系统状态

主线 D:界面与交互

  • UI 分类
  • 当前 UI
  • 物体 UI
  • UI 与地图的通信方式

主线 E:工程与版本

  • 引擎更新
  • 联机 UI 演进
  • 调试工具
  • 不同版本下功能差异

12. 可作为 AI 检索的关键词

  • 对象
  • 素材
  • 物体
  • 组件
  • 自定义组件
  • 指令
  • 脚本
  • 触发时机
  • UI
  • 地图UI
  • 操作UI
  • 物体UI
  • 广播
  • 地图广播
  • 系统作用域
  • 地图作用域
  • 实例化
  • 应用到原素材
  • 数据流
  • 状态分层
  • 架构

13. 证据等级与来源说明

  • 证据等级:多来源交叉归纳

  • 来源说明:官方教程 + 脚本界面截图 + 引擎更新说明交叉归纳

  • 主要来源:

    • docs/教程资料/官方教程知识索引.md
    • docs/脚本系统/脚本界面与积木知识索引.md
    • docs/教程资料/专题研究/素材实例化与地图物体关系解析.md
    • docs/教程资料/专题研究/素材系统与组件挂载解析.md
    • docs/教程资料/专题研究/广播机制深度解析.md
    • docs/脚本系统/专题研究/脚本作用域与数据流深度研究.md
    • docs/脚本系统/专题研究/创游世界脚本实战架构入门.md
  • 完整度状态:深度整理


14. 关联阅读

  • docs/教程资料/专题研究/素材实例化与地图物体关系解析.md
  • docs/教程资料/专题研究/素材系统与组件挂载解析.md
  • docs/教程资料/专题研究/广播机制深度解析.md
  • docs/脚本系统/专题研究/脚本作用域与数据流深度研究.md
  • docs/脚本系统/专题研究/创游世界UI数据同步架构.md
  • docs/脚本系统/专题研究/创游世界项目结构模板.md
  • docs/元信息/创游世界术语表.md

15. 后续可继续补的方向

  1. 把“组件分类”展开为单独知识图谱
  2. 把“脚本作用域”配成更多实战案例
  3. 把“UI → 广播 → 地图 → 系统”的数据流做成模板库
  4. 把“素材模板 → 地图实例”的常见误区列成 FAQ

参与维护

发现文档问题?

你可以编辑页面、提交反馈,或复制链接给维护者,帮助这个资料库继续变好。

由 Azek431 整理与维护 | 基于 MIT 许可证开源