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

创游世界组件组合与实战应用

一句话摘要

创游世界的功能通过组件组合实现。本文整理常用组件组合方案,覆盖角色控制、战斗系统、机关设计、UI 绑定等典型场景,帮助你快速掌握如何搭配组件实现目标功能。

适合谁阅读

  • 想快速实现某个功能但不知道需要哪些组件的新手
  • 想了解组件组合规律的进阶用户
  • 需要查找组件组合参考的开发者

你将学到什么

  • 角色相关组件组合
  • 敌人相关组件组合
  • 机关设计组件组合
  • 交互系统组件组合
  • UI 绑定组件组合
  • 特殊功能组件组合

核心理解:组件决定能力

在创游世界中:

  • 贴图决定「看起来像什么」
  • 组件决定「能做什么」

同样一张角色贴图:

  • 只挂物理组件 → 静态装饰
  • 挂物理 + 角色组件 → 可操控角色
  • 挂物理 + 角色 + 武器槽 → 可战斗角色
  • 挂物理 + 角色 + 武器槽 + 生命 → 有血量可死亡的角色

组件组合不同,同一个素材可以实现完全不同的功能。


一、角色控制类组合

1.1 基础移动角色

场景: 玩家控制的主角,需要能在地图里移动

组件作用
物理组件赋予物理属性,让角色可以移动和受力
角色组件让物体成为可操控角色,支持方向控制

可选附加:

组件作用使用场景
移动摇杆提供虚拟摇杆控制移动移动端触摸操作
碰撞盒调整调整角色碰撞体积角色需要穿过窄缝等

典型配置:

  • 物理组件:设置移动速度、跳跃能力
  • 角色组件:设置朝向、动画

1.2 NPC / 对话角色

场景: 不需要移动,但需要能和玩家对话的 NPC

组件作用
可互动物体让角色可以被玩家接近并触发交互

可选附加:

组件作用使用场景
物理组件阻挡玩家穿行NPC 站位固定
物体UI组件显示对话气泡或头顶名称NPC 需要显示名字

脚本配置:

当互动按钮被按下时
→ 显示对话 UI
→ 或发送广播触发对话系统

1.3 跟随角色 / 宠物

场景: 跟随玩家移动的宠物或同伴

组件作用
物理组件基础物理属性
角色组件可移动

需要配合脚本:

  • 获取玩家位置
  • 设置跟随偏移
  • 平滑跟随移动

二、战斗系统类组合

2.1 近战攻击角色

场景: 能用近战武器攻击的角色(如战士)

组件作用
物理组件物理基础
角色组件可操控移动
武器槽组件可装备武器
生命组件有血量,能受伤和死亡

可选附加:

组件作用使用场景
伤害组件能造成伤害主动攻击时
子弹组件能发射子弹近战也可不需要

战斗流程:

玩家按攻击键
→ 播放攻击动画
→ 检测前方敌人
→ 对命中敌人造成伤害
→ 播放受击反馈

2.2 远程攻击角色 / 射手

场景: 能发射子弹进行远程攻击的角色

组件作用
物理组件物理基础
角色组件可操控移动
武器槽组件可装备武器
子弹组件可发射子弹
生命组件有血量

子弹配置要点:

  • 伤害值
  • 飞行速度
  • 射程距离
  • 穿透数量
  • 命中特效

2.3 普通敌人

场景: 可被玩家击败的普通怪物

组件作用
物理组件有碰撞体积
生命组件有血量
伤害组件能反击伤害玩家

可选附加:

组件作用使用场景
子弹组件远程攻击远程敌人
AI 组件自动追踪/巡逻需要 AI 行为

死亡处理脚本:

当死亡时
→ 播放死亡动画
→ 发送广播 "敌人_死亡_通知"
→ 销毁自身
→ 或放入对象池复用

2.4 BOSS 敌人

场景: 高血量、多阶段的强大敌人

组件作用
物理组件物理基础
生命组件高血量
伤害组件高伤害
等级组件标记为 BOSS

推荐组件组合:

  • 物理 + 生命 + 伤害 + 自定义组件(记录阶段)
  • 可配合子弹组件实现远程攻击

阶段管理示例:

自定义组件属性:当前阶段(数字)

当受到伤害时
→ 计算剩余血量百分比
→ 如果 血量 <= 50% 且 当前阶段 == 1:
    → 设置当前阶段为 2
    → 进入第二阶段逻辑
    → 播放阶段切换特效

三、机关设计类组合

3.1 开关控制门

场景: 按下开关后打开的门

开关配置:

组件作用
可互动物体玩家可以交互
开关组件有开/关两种状态

门配置:

组件作用
物理组件有碰撞体积
机关门组件可被开关控制

脚本配置:

开关脚本:

当互动按钮被按下时
→ 切换开关状态
→ 发送广播 "机关_门_切换",参数:开关.当前状态

门脚本:

当收到广播 "机关_门_切换" 时
→ 如果 参数 == "开":
    → 打开门
    → 播放开门动画
→ 如果 参数 == "关":
    → 关闭门
    → 播放关门动画

3.2 机关地板 / 压力板

场景: 玩家站在上面会触发的机关

组件作用
机关地板组件检测上方是否有物体
物理组件可被踩踏

脚本配置:

当物体进入时
→ 发送广播 "机关_触发_地板1"

当物体离开时
→ 发送广播 "机关_重置_地板1"

3.3 机关陷阱

场景: 对玩家造成伤害的陷阱

组件作用
机关组件定义陷阱行为
伤害组件对玩家造成伤害

脚本配置:

当玩家接近时
→ 启动机关
→ 循环播放伤害逻辑

四、交互系统类组合

4.1 可拾取道具

场景: 玩家靠近后可以拾取的道具

组件作用
可互动物体玩家可以交互

脚本配置:

当互动按钮被按下时
→ 发送广播 "道具_拾取_玩家",参数:道具ID、数量
→ 播放拾取动效
→ 销毁自身

4.2 商店 NPC

场景: 提供购买服务的 NPC

组件作用
可互动物体玩家可以交互
物体UI组件显示商店界面

脚本配置:

当互动按钮被按下时
→ 发送广播 "请求_打开_商店"

4.3 传送点 / 门

场景: 玩家进入后切换地图

组件作用
可互动物体玩家可以交互

脚本配置:

当互动按钮被按下时
→ 发送广播 "传送_目标地图"

或者:
当玩家接近时
→ 发送广播 "传送_目标地图"

地图脚本:

当收到广播 "传送_目标地图" 时
→ 执行系统切换地图,参数:目标地图ID

五、UI 绑定类组合

5.1 头顶血条

场景: 敌人或玩家头顶显示的血量条

组件作用
生命组件提供血量数据
物体UI组件绑定血条 UI

配置步骤:

  1. 创建血条 UI(进度条 + 背景)
  2. 给物体挂载「物体UI组件」
  3. 在组件中绑定血条 UI
  4. 配置显示位置(头顶)

5.2 头顶名字

场景: 显示角色名称

组件作用
物体UI组件绑定名称显示

配置要点:

  • UI 需要包含文本元素
  • 文本内容可以在脚本中动态设置

5.3 交互提示气泡

场景: 玩家接近时显示「按E交互」等提示

组件作用
可互动物体显示互动按钮

配置:

  • 勾选「显示互动提示」
  • 设置提示文字

六、特殊功能组合

6.1 可生长植物

场景: 可以被砍倒、然后再生长的植物

组件作用
自定义组件记录生长状态、再生时间等

自定义组件属性:

  • 当前状态(正常/被砍倒)
  • 再生时间(秒)

脚本逻辑:

当被交互时(砍伐)
→ 设置当前状态为"被砍倒"
→ 播放砍伐动画
→ 开始计时(再生时间)

当计时结束
→ 设置当前状态为"正常"
→ 播放生长动画

6.2 多阶段机关

场景: 需要多次交互才能完成的机关

组件作用
自定义组件记录当前阶段
开关组件控制状态

自定义组件属性:

  • 当前阶段(1/2/3)
  • 目标阶段

脚本逻辑:

当被交互时
→ 当前阶段 + 1
→ 如果 当前阶段 >= 目标阶段:
    → 打开机关
    → 播放完成动画
→ 否则:
    → 播放阶段提示

七、组件组合检查表

当你需要实现某个功能时,可以按这个顺序思考:

第一步:确定主体对象

这个功能的主角是谁?

  • 玩家角色
  • 敌人
  • NPC
  • 道具
  • 机关

第二步:确定必须组件

这个对象必须有哪些能力?

  • 能动吗?→ 物理 + 角色
  • 能被交互吗?→ 可互动
  • 有血量吗?→ 生命
  • 能攻击吗?→ 伤害 / 子弹 / 武器槽

第三步:确定可选组件

有哪些能力是锦上添花的?

  • 需要 UI 显示吗?→ 物体UI
  • 需要记录状态吗?→ 自定义组件
  • 需要特定行为吗?→ 自定义组件

第四步:编写配合脚本

组件只是「能力」,具体行为需要脚本控制:

  • 触发时机是什么?
  • 需要发送哪些广播?
  • 状态如何变化?

常见问题

Q:组件挂多了会怎样?

A: 组件越多,功能越复杂,但也要注意:

  • 不必要的组件会增加性能开销
  • 组件之间可能有属性冲突
  • 维护成本增加

建议:只挂需要的组件,不要过度设计。

Q:同一个物体可以挂多个同类型组件吗?

A: 通常不建议。具体行为应该通过脚本和自定义组件实现,而不是叠加多个同类组件。

Q:组件组合后脚本怎么写?

A: 组件提供的是「能力」,脚本控制的是「行为」:

  • 组件告诉你「可以做什么」
  • 脚本决定「什么时候做、怎么做」

相关页面


待验证问题

  • [待验证] 组件组合是否有时序要求
  • [待验证] 某些组件是否互斥

后续优化方向

  • [ ] 补充更多游戏类型的组件组合示例
  • [ ] 添加组件组合的示意图
  • [ ] 完善常见游戏系统的组件组合方案

参与维护

发现文档问题?

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

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