Skip to content
写作日期:2026/05/11 更新日期:2026/06/08 状态:已整理 难度:入门 证据:E1(官方截图)+ E3(多来源归纳)

创游世界脚本入门完全指南 ​

⭐ 一句话推荐:脚本是创游世界实现交互功能的核心工具。本文讲解脚本编写逻辑:触发时机决定"什么时候跑"、积木块决定"做什么操作"、变量决定"存什么数据"、自定义组件决定"封装什么能力"。

一句话摘要 ​

脚本是创游世界实现交互功能的核心工具。本文档讲解脚本的编写逻辑:触发时机决定"什么时候跑"、积木块决定"做什么操作"、变量决定"存什么数据"、自定义组件决定"封装什么能力"。

适合谁阅读 ​

  • 完全不会写脚本的新手用户
  • 只会摆素材、不理解如何给物体赋予行为的学习者
  • 想系统理解创游脚本编写逻辑的制作者

你将学到什么 ​

  • 脚本编辑器的界面结构和基本操作
  • 触发时机是什么,以及常见触发时机有哪些
  • 变量的类型与使用场景
  • 常用积木块的功能分类
  • 自定义组件的基本编写方法
  • 脚本编写的常见错误与避坑建议

核心结论 ​

  1. 脚本不是独立代码,而是"在特定时机下、执行特定逻辑"的描述
  2. 触发时机决定脚本何时执行,积木块决定具体操作
  3. 变量决定数据存储位置,要根据需要选择正确的作用域
  4. 自定义组件是封装可复用功能模块的最佳方式

1. 脚本编辑器的界面结构 ​

从截图观察,脚本编辑器通常包含以下区域:

区域作用
对象选择区选择要编辑脚本的对象
触发时机区选择脚本在什么时机执行
积木块区拖拽积木块组合成逻辑
积木块选择区查找和选择积木块
操作区保存、试玩等操作

关键理解:脚本编辑器不是写代码,而是通过拖拽积木块来"拼装"逻辑。


2. 触发时机:脚本什么时候执行 ​

2.1 什么是触发时机 ​

触发时机决定了脚本在"什么情况下"被执行。没有触发时机,脚本永远不会执行。

2.2 常见触发时机分类 ​

事件型触发时机 ​

触发时机触发条件
当被创建时对象被创建时执行一次
当被销毁时对象被销毁时执行一次
当受到伤害时对象受到伤害时执行
当死亡时对象死亡时执行
当碰撞时对象与其他物体碰撞时执行
当接近时玩家接近对象时执行

交互型触发时机 ​

触发时机触发条件
当被点击时对象被点击时执行
当互动按钮被按下时玩家按下互动按钮时执行
当使用道具时玩家使用道具时执行

广播型触发时机 ​

触发时机触发条件
当收到广播时收到指定广播时执行
当执行指令时自定义组件指令被调用时执行

定时型触发时机 ​

触发时机触发条件
当开始时游戏/地图开始时执行一次
每秒执行每秒循环执行
重复执行直到重复执行直到满足条件

2.3 选择触发时机的原则 ​

  • 如果脚本只需要在特定事件发生时执行一次,选择事件型
  • 如果脚本需要持续检测状态,选择循环型
  • 如果需要多个对象响应同一事件,选择广播型

3. 变量:脚本中的数据存储 ​

3.1 变量的本质 ​

变量是"存储数据的容器"。在脚本中,变量用于:

  • 存储临时计算结果
  • 记录对象状态
  • 在不同脚本之间传递数据

3.2 变量的类型 ​

根据存储位置,变量可分为:

类型生命周期存储位置用途
局部变量当前脚本执行完就消失脚本内部临时计算、中间值
自身属性对象存在期间组件/对象属性对象自身状态
地图属性地图存在期间地图对象同地图多对象共享
系统属性整个游戏期间系统层全局数据

3.3 变量的使用场景 ​

场景1:计算两个数的和
→ 使用局部变量存储临时结果

场景2:记录敌人当前血量
→ 使用自身属性存储

场景3:记录当前波次(多波次战斗)
→ 使用地图属性存储

场景4:记录玩家拥有的金币
→ 使用系统属性或玩家变量存储

3.4 变量命名建议 ​

  • 使用有意义的名称:金币 而不是 a
  • 使用中文或英文:当前血量 或 currentHP
  • 保持一致:同类型变量使用统一的命名风格

4. 积木块分类与常用积木 ​

4.1 积木块分类 ​

从脚本界面截图,积木块可分为以下几类:

控制类积木 ​

积木块功能
如果...那么条件判断
如果...那么...否则条件分支
当满足条件时重复执行循环执行
等待暂停等待
停止脚本停止当前脚本执行

运算类积木 ​

积木块功能
加、减、乘、除基础数学运算
比较大小数值比较
随机数生成随机数
取整、四舍五入数学函数

数据类积木 ​

积木块功能
新建变量创建局部变量
设置变量修改变量值
获取变量读取变量值

对象类积木 ​

积木块功能
获取对象获取对象引用
获取属性读取对象属性
设置属性修改对象属性
销毁对象销毁对象

动作类积木 ​

积木块功能
发送广播发送广播消息
播放动画播放对象动画
移动到移动对象位置
渐变属性平滑过渡

4.2 常用积木组合示例 ​

示例1:受伤时扣血 ​

当受到伤害时:
  获取自身生命值 → 当前生命
  获取伤害来源伤害值 → 伤害
  当前生命 - 伤害 → 新生命
  设置自身生命为 新生命
  如果 新生命 <= 0:
    发送广播"敌人死亡",参数:自身
    销毁自身

示例2:玩家靠近时显示提示 ​

当接近时:
  如果 距离 <= 3:
    显示提示文字"按互动按钮进行交互"

5. 自定义组件入门 ​

5.1 什么是自定义组件 ​

自定义组件是创作者自己定义的功能模块,可以包含:

  • 属性:存储数据
  • 指令:定义可调用的行为
  • 触发时机:响应特定事件

5.2 创建自定义组件的步骤 ​

  1. 选择要添加组件的对象
  2. 添加自定义组件
  3. 设置组件名称
  4. 添加属性(可选)
  5. 添加指令(可选)
  6. 编写指令脚本
  7. 保存并试玩

5.3 自定义组件示例 ​

示例:简单的可拾取道具组件 ​

组件名称:可拾取道具

属性:
  - 道具ID(数字)
  - 道具数量(数字)

指令:拾取
  当执行"拾取"时:
    发送广播"获得道具",参数:道具ID、道具数量
    销毁自身

触发时机:接近时
  当接近时:
    显示提示"按E拾取"

5.4 自定义组件的价值 ​

价值说明
复用同一个组件可以挂载到多个对象上
封装把相关功能封装在一起
简化其他脚本只需调用指令,不需要知道内部实现
维护修改组件逻辑时,只需改一处

6. 脚本编写常见错误 ​

错误1:忘记触发时机 ​

❌ 错误写法:
  新建变量 金币 = 100
  金币 + 10 → 金币

✓ 正确写法:
  当被创建时:
    新建变量 金币 = 100
    金币 + 10 → 金币

错误2:变量作用域选错 ​

❌ 错误做法:
  在每个敌人身上都用局部变量记录"是否在战斗"
  → 切换地图后状态丢失

✓ 正确做法:
  战斗状态用地图属性存储
  → 同一地图内所有对象都能访问

错误3:无限循环没有等待 ​

❌ 错误写法:
  重复执行:
    如果 条件 = true:
      发送广播"触发"
  → 游戏会卡死

✓ 正确写法:
  重复执行:
    等待 0.5 秒
    如果 条件 = true:
      发送广播"触发"
      停止当前脚本

错误4:广播名称不一致 ​

❌ 错误写法:
  发送广播"道具获得"
  监听广播"道具_获得"  ← 名称不一致

✓ 正确写法:
  发送广播"道具_获得"
  监听广播"道具_获得"  ← 名称一致

7. 脚本调试基础 ​

7.1 常用调试方法 ​

方法说明
打印日志使用显示文字或广播输出变量值
单步执行使用逐行 Debug 查看执行流程
分段注释把脚本分成多段,逐段测试

7.2 常见问题排查 ​

问题可能原因解决方案
脚本不执行没有正确触发时机检查触发时机设置
变量值为空变量未初始化检查变量初始化
广播没有响应名称不一致检查广播名称
游戏卡死无限循环添加等待语句

8. 后续学习建议 ​

当你掌握了基础脚本后,建议继续学习:

  1. 广播机制:广播机制深度解析
  2. 变量作用域:脚本作用域与数据流深度研究
  3. 自定义组件:自定义组件深度解析
  4. UI 数据同步:创游世界 UI 数据同步架构

相关页面 ​


待验证问题 ​

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

问题状态验证方向
积木块的完整分类和详细参数说明🔄 待验证需要官方文档确认
不同触发时机的优先级规则🔄 待验证需要实际测试

📝 说明:脚本入门核心概念已稳定,详细参数属于进阶内容。

后续优化方向 ​

  • [ ] 补充更多积木块的详细参数说明
  • [ ] 添加完整的项目实战案例
  • [ ] 补充调试工具的使用教程
  • [ ] 完善常见错误与解决方案

参与维护

发现文档问题?

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

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