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

创游世界组件系统完全指南

一句话摘要

组件是给物体赋予能力的核心模块。本文解析创游世界内置组件的分类体系、常用组件的功能与参数配置,以及组件化设计的基本思维,帮助你理解"贴图决定外观,组件决定能做什么"。

适合谁阅读

  • 不理解组件是什么、为什么要挂组件的新手
  • 想系统了解创游内置组件能力的开发者
  • 准备设计自定义组件的进阶用户
  • 想理解"素材+组件=可交互物体"的设计逻辑的学习者

你将学到什么

  • 组件的六大分类体系
  • 每类组件的典型用途和功能
  • 常见组件的参数配置要点
  • 官方内置素材为什么能直接使用
  • 自定义组件的定位和价值
  • 组件选择的决策思路

核心结论

  1. 贴图≠功能:素材只决定外观,组件才决定物体能做什么。
  2. 组件是能力模块:通过组合不同组件,可以让物体具备移动、战斗、交互、显示等能力。
  3. 内置素材预装组件:官方素材已预设所需组件,所以"拿来就能用";自制素材需要自己挂载组件。
  4. 自定义组件扩展边界:当内置组件无法满足需求时,可以用自定义组件封装可复用功能。

1. 为什么组件是创游世界的核心概念

1.1 一个简单的理解

创游世界的物体可以这样比喻:

素材 = 外壳,组件 = 器官,脚本 = 行为指令

没有组件的物体,就像一个没有器官的躯壳,看起来可能有形状,但实际上没有任何功能。

1.2 组件解决什么问题

在传统游戏开发中,开发者需要写代码定义每个物体的能力。在创游世界中:

  • 官方内置组件:解决了"通用能力不需要从零写"的问题
  • 自定义组件:解决了"特殊需求可以自己封装"的问题

这样创作者可以把更多精力放在玩法设计,而不是底层能力实现上。

1.3 组件和素材的关系

场景结果
官方内置素材已经预装所需组件,拿来就能用
自制素材(不挂组件)只有外观,没有任何功能
自制素材(挂适当组件)具备相应能力,可交互

2. 组件分类体系

根据官方教程和脚本界面截图,创游世界的组件至少分为六大类:

分类说明典型组件
通用基础交互能力物理、阻挡通行、物体UI
战斗战斗相关能力生命、伤害、武器槽、近战武器、远程武器、子弹
装置机关与功能性物体机关、机关门、机关地板
显示视觉效果粒子特效、动效
交互用户输入移动摇杆、技能摇杆、互动按钮
自定义开发者自定义能力自定义组件

2.1 通用类组件

通用类组件提供最基础的物体能力。

物理组件

  • 作用:让物体具备物理属性,包括可移动、受力、碰撞
  • 关键参数
    • 移动方式
    • 是否受重力影响
    • 碰撞层级
  • 典型用途:角色、敌人、掉落物等需要物理交互的物体

阻挡通行组件

  • 作用:限制其他物体的移动路径
  • 关键参数
    • 阻挡范围
    • 阻挡层级
  • 典型用途:墙体、地板、障碍物

物体UI组件

  • 作用:让物体可以关联显示界面
  • 关键参数
    • 绑定的UI资源
    • 显示时机
  • 典型用途:头顶血条、NPC对话框、交互提示

2.2 战斗类组件

战斗类组件是实现战斗系统的核心。

生命组件

  • 作用:让物体具备血量概念,能够受伤和死亡
  • 关键参数
    • 最大生命值
    • 当前生命值
    • 阵营(影响伤害判定)
    • 受伤事件回调
    • 死亡事件回调
  • 典型用途:玩家、敌人、Boss、所有需要血量管理的物体

伤害组件

  • 作用:让物体能够造成伤害
  • 关键参数
    • 基础伤害值
    • 伤害类型
    • 伤害来源标识
  • 典型用途:陷阱、环境伤害、技能效果

武器槽组件

  • 作用:让物体可以装备和使用武器
  • 关键参数
    • 可装备武器数量
    • 当前装备
    • 武器切换逻辑
  • 典型用途:玩家角色、所有可持武器的单位

近战武器组件

  • 作用:实现近身攻击能力
  • 关键参数
    • 攻击伤害
    • 攻击范围(扇形/圆形)
    • 攻击角度
    • 攻击冷却时间
    • 暴击率
    • 击退效果
    • 持握方式
    • 攻击方式(挥砍/突刺等)
  • 典型用途:刀、剑、斧、锤等近战武器
  • 重要说明:近战武器可以直接产生伤害,与远程武器不同

远程武器组件

  • 作用:实现投射物攻击能力
  • 关键参数
    • 子弹类型
    • 发射频率
    • 弹道速度
    • 射程
    • 穿透能力
  • 典型用途:枪械、弓弩、法杖等远程武器

子弹组件

  • 作用:定义投射物的行为
  • 关键参数
    • 飞行速度
    • 伤害值
    • 命中效果
    • 自动销毁条件
    • 弹道类型(直线/曲线/追踪)
  • 典型用途:子弹、飞镖、魔法弹、箭矢

2.3 装置类组件

装置类组件用于创建机关和功能性物体。

机关组件

  • 作用:让物体成为可触发的机关
  • 关键参数
    • 触发条件
    • 触发效果
    • 冷却时间
  • 典型用途:按钮、压力板、开关

机关门组件

  • 作用:让物体成为可控制的门
  • 关键参数
    • 初始状态(开/关)
    • 开关动画
    • 控制方式
  • 典型用途:门、栅栏、吊桥

机关地板组件

  • 作用:带有机关效果的地板
  • 关键参数
    • 伤害值
    • 触发频率
    • 持续效果
  • 典型用途:地刺、岩浆、毒液

2.4 显示类组件

显示类组件用于实现视觉效果。

粒子特效组件

  • 作用:播放粒子效果
  • 关键参数
    • 特效资源
    • 播放时机
    • 持续时间
    • 缩放比例
  • 典型用途:爆炸、飘烟、施法特效、受伤特效

动效组件

  • 作用:播放动画效果
  • 关键参数
    • 动画资源
    • 播放模式(播放一次/循环)
    • 播放速度
  • 典型用途:攻击动画、受击动画、移动动画

2.5 交互类组件

交互类组件用于接收和处理用户输入。

移动摇杆组件

  • 作用:提供虚拟摇杆控制
  • 关键参数
    • 摇杆类型(动态/静态)
    • 显示位置
    • 灵敏度
    • 事件回调
  • 典型用途:移动控制

技能摇杆组件

  • 作用:提供技能释放摇杆
  • 关键参数
    • 摇杆类型
    • 指向角度回调
  • 典型用途:方向性技能释放

互动按钮组件

  • 作用:提供互动按钮
  • 关键参数
    • 显示条件(靠近时显示)
    • 按钮样式
    • 触发回调
  • 重要说明
    • 默认隐藏,只有玩家接近可互动物体时才显示
    • 如果需要常驻按钮,应使用普通按钮组件
  • 典型用途:NPC对话、物体交互提示

2.6 自定义组件

自定义组件是开发者自行定义的组件,是创游扩展能力的核心方式。

自定义组件的三大元素

元素说明用途
属性存储数据和配置记录物体状态、存储参数
指令可调用的行为入口提供外部调用接口
触发时机响应事件的入口处理当被创建、受伤、死亡等事件

自定义组件的作用

  • 封装可复用逻辑:把多个物体的通用功能封装为一个组件
  • 扩展能力边界:实现内置组件不支持的特殊功能
  • 统一接口设计:为多个相似物体提供一致的行为接口

典型使用场景

  • 可成长植物(记录状态、生长时间、掉落物)
  • 机关门逻辑(开关状态、联动其他机关)
  • 任务状态机(任务进度、触发条件、完成判定)
  • 自定义Buff系统(效果持续、叠加规则)
  • 多阶段Boss机制(阶段切换、特殊行为)

3. 组件选择决策指南

3.1 做一件事需要哪些组件

要实现的功能需要的组件组合
让角色能动物理组件 + 角色组件
角色能攻击物理组件 + 角色组件 + 武器槽组件 + 近战/远程武器组件
敌人能受伤和死亡物理组件 + 生命组件(可选:武器槽组件)
玩家能打开背包UI层 + 背包组件(挂载在背包UI素材上)
按钮能触发机关可互动物体组件 + 机关组件 + 广播
显示头顶血条物体UI组件 + UI资源 + 生命值监听脚本
子弹能造成伤害子弹组件 + 伤害组件

3.2 组件冲突和优先级

某些组件之间可能存在冲突或需要优先级:

  • 物理组件 + 阻挡通行:如果物体既能移动又被阻挡,可能需要调整碰撞层级
  • 生命组件 + 武器槽:攻击来源的阵营会影响是否造成伤害
  • 多个互动组件:同时挂载可能导致交互行为冲突

3.3 组件的依赖关系

部分组件依赖其他组件:

  • 角色组件 依赖 物理组件
    • 解决方案:挂载角色组件时,系统通常会自动补上物理组件

4. 官方素材与组件的关系

4.1 为什么官方素材能直接用

官方素材(如官方角色、怪物、道具素材)在创建时已经预装了所需的组件:

官方素材已预装组件
官方角色物理组件 + 角色组件 + 生命组件
官方怪物物理组件 + 生命组件 + AI/行为组件
官方道具对应的功能组件(如货币组件)
官方UI素材对应的UI组件(如背包组件)

这就是为什么官方素材"拿来就能用",而自制素材需要自己挂组件。

4.2 复制官方素材要注意什么

当复制一个官方素材到自制素材时:

  1. 组件会被一起复制:新素材会保留原素材的组件配置
  2. 属性会重置:新实例会根据素材的默认属性创建
  3. 如果有特殊绑定:可能需要重新配置

5. 组件参数配置要点

5.1 生命组件配置

参数说明建议值
最大生命值生命上限根据游戏难度调整
阵营影响伤害判定玩家/友方/敌方/中立
受伤事件受伤时的回调连接UI或特效
死亡事件死亡时的回调连接掉落或重生逻辑

5.2 武器组件配置

近战武器

参数说明建议值
伤害值每次攻击的基础伤害根据游戏平衡调整
攻击范围扇形或圆形半径根据角色大小调整
攻击角度扇形的张角90°-180°
冷却时间攻击间隔0.5-1秒
暴击率暴击触发概率0-30%
击退效果命中后推开目标根据游戏类型调整

远程武器

参数说明建议值
子弹类型使用的子弹预设根据武器类型选择
发射频率每秒发射次数根据武器类型调整
弹道速度子弹飞行速度根据游戏节奏调整

5.3 子弹组件配置

参数说明建议值
伤害命中时的伤害值根据武器定位调整
飞行速度子弹移动速度根据游戏节奏调整
射程/持续时间子弹存在时间根据武器类型调整
命中特效命中时播放的效果根据视觉风格选择
弹道类型直线/追踪/曲线根据武器类型选择

6. 组件与脚本的配合

6.1 组件提供能力,脚本控制行为

组件定义了"能做什么":

  • 生命组件提供了血量管理和受伤/死亡事件
  • 武器组件提供了攻击能力和伤害计算

脚本决定了"什么时候做、怎么做":

  • 脚本可以监听组件的事件
  • 脚本可以调用组件的指令
  • 脚本可以在特定时机修改组件的属性

6.2 常见配合模式

模式一:事件驱动

生命组件.当受到伤害时
  → 触发脚本
  → 播放受击动画(动效组件)
  → 显示飘字(UI组件)
  → 判断是否死亡

模式二:指令调用

当点击攻击按钮时
  → 脚本调用武器组件.攻击指令
  → 武器组件执行攻击逻辑
  → 命中时触发目标的生命组件.受伤回调

模式三:属性监听

重复执行(每秒)
  → 读取生命组件.当前生命值
  → 写入UI组件.血条显示值
  → 如果血量变化,播放渐变动画

6.3 自定义组件与内置组件的配合

自定义组件可以:

  • 监听内置组件的事件:例如在自定义组件里监听生命组件的受伤事件
  • 调用内置组件的指令:例如自定义组件里调用武器组件的攻击
  • 扩展内置组件的能力:例如在自定义组件里实现复杂的Buff效果

7. 组件化设计思维

7.1 从"有什么功能"到"需要什么组件"

做功能时,先问:

  1. 这个物体需要什么能力?
  2. 哪些是内置组件已经提供的?
  3. 哪些需要自定义组件?
  4. 这些组件之间如何配合?

7.2 组件的单一职责

好的组件设计应该:

  • 每个组件负责一种核心能力
  • 不要把所有功能塞进一个组件
  • 通过组合多个组件实现复杂功能

示例:

  • 角色 = 物理 + 角色 + 生命 + 武器槽
  • 敌人AI角色 = 物理 + 生命 + AI行为 + 武器槽

7.3 可复用的组件模式

如果多个物体需要相同功能,优先考虑:

  1. 提取为自定义组件:而不是在每个物体里重复写相同逻辑
  2. 统一接口设计:让不同物体通过相同指令调用
  3. 配置驱动:通过属性配置适应不同需求

8. 常见问题与解决方案

Q1:为什么我做的素材没有官方素材那么多功能?

原因:官方素材预装了组件,自制素材默认没有。

解决:给自制素材挂载需要的组件。

Q2:可以同时挂两个武器组件吗?

答案:可以,但通常一个武器槽挂载一个武器。如果需要多武器切换,通过武器槽的切换功能实现,而不是同时挂两个武器组件。

Q3:组件参数改了没效果?

可能原因

  • 物体已经被实例化,修改素材模板不会自动更新已有实例
  • 脚本里有覆盖默认参数的逻辑

解决

  • 使用"应用到原素材"同步修改
  • 或者修改地图中实例的参数

Q4:什么情况下应该用自定义组件?

建议使用自定义组件的场景

  • 需要封装可复用逻辑
  • 内置组件无法满足的特殊需求
  • 多个物体需要统一的行为接口
  • 需要记录复杂的状态

相关页面


待验证问题

以下问题需要进一步验证:

问题状态验证方向
部分组件的具体参数在不同版本下的默认值差异🔄 待验证需要多版本对比
某些组件之间的冲突条件和优先级规则🔄 待验证需要实际测试
组件在联机模式下的同步行为🔄 待验证需要联机环境测试

📝 说明:组件系统核心用法已稳定,具体参数和版本差异属于进阶内容。

后续优化方向

  • [ ] 补充各组件的详细参数说明和配置示例
  • [ ] 添加组件组合的实战案例
  • [ ] 补充组件依赖关系的详细说明
  • [ ] 添加不同游戏类型的组件选择建议

参与维护

发现文档问题?

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

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