创游世界对象 / 素材 / 组件 / 脚本关系总图
1. 文档定位
本文用于把目前知识库里已经分散整理出来的核心概念——对象、素材、组件、脚本、UI、广播、系统作用域——压缩成一张可理解的结构图。它不是逐页 OCR,而是面向“理解整个引擎工作方式”的总纲文档。
适合回答的问题:
- 创游世界里的“素材”和“物体”到底有什么区别?
- 组件是挂在哪一层的?
- 脚本是属于对象、组件,还是系统?
- UI 和地图逻辑是怎么接起来的?
- 为什么很多功能都建议用广播来做?
2. 核心关系一句话概括
可以先用一句话理解:
素材是模板,物体是实例,组件是能力模块,脚本是行为逻辑,广播是解耦连接器,UI 是表现与输入界面,系统层负责跨对象与跨地图的全局流程。
如果把创游世界看成搭积木:
- 素材:像预制件 / 模板
- 物体:像被放进地图里的实际对象
- 组件:像给对象装上的功能器官
- 脚本:像这些器官和对象的行为规则
- UI:像玩家看到和点击的控制面板
- 广播:像对象之间互相传话的机制
- 系统:像全局导演,控制胜负、切图、音频、计时器等
3. 总体结构图
创游世界项目
├─ 地图
│ ├─ 地图中的物体(实例)
│ │ ├─ 来源:某个素材
│ │ ├─ 挂载:若干组件
│ │ └─ 执行:对象/组件相关脚本
│ ├─ 地图属性
│ ├─ 地图广播
│ └─ 地图级生成 / 流程逻辑
├─ UI
│ ├─ 地图UI
│ ├─ 操作UI
│ ├─ 物体UI
│ └─ 通过广播 / 当前UI接口与地图逻辑交互
├─ 系统层
│ ├─ 胜负流程
│ ├─ 切换地图
│ ├─ 计时器
│ ├─ 音频 / BGM / 声音实例
│ └─ 联机 / 房间 / 全局状态
└─ 素材库
├─ 图片 / 贴图 / 文件夹
├─ 可复用素材
└─ 组件配置的模板来源4. 素材与物体:模板和实例
4.1 什么是素材
根据官方教程与现有 OCR 整理,素材更接近“可复用的基础资源 / 模板定义”。
素材层通常承载:
- 图像或贴图资源
- 初始属性
- 可挂载的组件配置
- 用来反复生成同类对象的基础定义
这也是为什么知识库里多次出现:
- 修改素材属性后,地图里的已有物体不一定立刻变化
- 需要“应用到原素材”或重新理解实例与模板的关系
4.2 什么是物体
物体是地图中的实际存在,是素材被放到地图后的实例。
物体层具有:
- 自己当前时刻的状态
- 自己所在地图中的位置、层级、交互关系
- 挂载后的组件运行结果
- 运行时被脚本修改后的动态属性
4.3 为什么修改素材不一定影响地图中的物体
因为很多情况下,地图里的物体不是“实时引用素材面板”,而是已经带着当时的配置被实例化出来了。
这意味着:
- 素材更像“出生模板”
- 物体更像“出生后的个体”
所以在项目设计上要特别注意:
- 想批量复用某种能力时,要先把组件和通用配置收敛到素材模板层
- 想改某个特定对象时,要确认你改的是实例,还是模板
5. 组件:对象能力的装配层
5.1 组件的本质
组件是对象的功能模块。它决定这个对象“能做什么”。
例如:
- 生命组件:能有血量、受伤、死亡
- 子弹组件:能发射、碰撞、造成效果
- 货币组件:能记录货币数值
- 近战武器组件:能进行近战攻击
- 粒子特效组件:能产生视觉效果
- UI 相关组件:能参与界面显示或交互
5.2 为什么组件重要
因为创游世界不是纯代码驱动的系统,而是明显偏向:
对象 = 基础实体,组件 = 能力组合,脚本 = 行为编排
这意味着你做功能时,不是从“写一大段代码”开始,而是先判断:
- 这个功能属于哪个对象?
- 这个对象需要哪些组件?
- 脚本应该绑定在哪个层级、响应什么触发时机?
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 与地图逻辑的推荐关系
推荐结构通常是:
玩家操作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/教程资料/官方教程知识索引.mddocs/脚本系统/脚本界面与积木知识索引.mddocs/教程资料/专题研究/素材实例化与地图物体关系解析.mddocs/教程资料/专题研究/素材系统与组件挂载解析.mddocs/教程资料/专题研究/广播机制深度解析.mddocs/脚本系统/专题研究/脚本作用域与数据流深度研究.mddocs/脚本系统/专题研究/创游世界脚本实战架构入门.md
完整度状态:深度整理
14. 关联阅读
docs/教程资料/专题研究/素材实例化与地图物体关系解析.mddocs/教程资料/专题研究/素材系统与组件挂载解析.mddocs/教程资料/专题研究/广播机制深度解析.mddocs/脚本系统/专题研究/脚本作用域与数据流深度研究.mddocs/脚本系统/专题研究/创游世界UI数据同步架构.mddocs/脚本系统/专题研究/创游世界项目结构模板.mddocs/元信息/创游世界术语表.md
15. 后续可继续补的方向
- 把“组件分类”展开为单独知识图谱
- 把“脚本作用域”配成更多实战案例
- 把“UI → 广播 → 地图 → 系统”的数据流做成模板库
- 把“素材模板 → 地图实例”的常见误区列成 FAQ
