创游世界脚本入门完全指南
一句话摘要
本文为零基础用户提供创游世界脚本入门完全指南,涵盖触发时机、变量、广播、条件判断、循环等核心概念,通过图文示例帮助新手快速掌握脚本编写基础。
适合谁阅读
- 刚接触创游世界不知道脚本怎么写的新手
- 想系统学习脚本编写的创作者
- 需要复习脚本基础的用户
- 遇到脚本问题的初学者
你将学到什么
- 什么是脚本和触发时机
- 如何创建和使用变量
- 广播的基本用法
- 条件判断和循环语句
- 脚本调试技巧
- 常见错误和解决方法
💡 如果你想快速查找脚本问题,请查看:创游世界触发时机速查卡 💡 如果你想了解广播机制,请查看:创游世界广播使用速查卡
核心结论
在学习之前,请先记住以下核心结论:
- 脚本 = 一系列指令:脚本由多个积木块按顺序组成,每块积木代表一个操作
- 触发时机 = 执行入口:脚本只有在满足触发时机条件时才会执行
- 变量 = 存储数据:需要长期保存的数据要用变量,临时计算用局部变量
- 广播 = 通信机制:广播让不同对象之间可以互相通知消息
一、脚本基础概念
1.1 什么是脚本
脚本是一系列指令的集合,告诉游戏「在什么情况下做什么」。
类比理解:
- 脚本就像一份「说明书」
- 触发时机 = 「什么时候看说明书」
- 积木块 = 「说明书上的具体步骤」
1.2 脚本在哪里写
- 选中地图上的物体
- 在属性面板中添加「脚本组件」
- 点击「编辑脚本」进入脚本编辑器
- 编写你的脚本逻辑
1.3 脚本的基本结构
当 [触发时机] 时
→ 执行 [积木1]
→ 执行 [积木2]
→ 执行 [积木3]
结束二、触发时机
2.1 什么是触发时机
触发时机是脚本执行的「入口条件」,只有满足条件时,脚本才会运行。
2.2 常见触发时机
| 触发时机 | 触发条件 | 使用场景 |
|---|---|---|
| 当开始时 | 物体被创建 | 初始化设置 |
| 当点击时 | 玩家点击物体 | 按钮交互 |
| 当碰撞时 | 与其他物体碰撞 | 碰撞检测 |
| 当收到广播时 | 收到指定广播 | 事件响应 |
| 当互动按钮被按下时 | 玩家按下互动按钮 | NPC对话 |
| 当死亡时 | 物体死亡 | 死亡处理 |
| 当受伤时 | 物体受伤 | 受伤处理 |
2.3 触发时机示例
按钮点击:
当点击时
→ 发送广播 "按钮被点击"
结束碰撞检测:
当碰撞时
→ 播放音效 "撞击"
→ 销毁当前碰撞对象
结束广播响应:
当收到广播 "游戏开始" 时
→ 设置当前地图属性 "游戏状态" 为 "进行中"
结束三、变量
3.1 什么是变量
变量是用于存储数据的「容器」,可以在脚本中保存和读取数据。
3.2 创建局部变量
新建局部变量 为 初始值示例:
新建局部变量 计数器 为 0
新建局部变量 名字 为 "玩家"
新建局部变量 启用 为 真3.3 变量类型
| 类型 | 示例 | 说明 |
|---|---|---|
| 数字 | 100、3.14、-50 | 数值数据 |
| 文本 | "你好"、"玩家" | 字符串文字 |
| 真假值 | 真 / 假 | 布尔值 |
| 数组 | [1, 2, 3] | 一组数据 |
3.4 变量作用域
| 变量类型 | 生命周期 | 访问范围 |
|---|---|---|
| 局部变量 | 当前脚本执行完消失 | 只有当前脚本 |
| 自身属性 | 物体存在期间 | 只有当前物体 |
| 地图属性 | 地图存在期间 | 当前地图所有物体 |
| 系统属性 | 游戏全程 | 所有物体 |
| 玩家变量 | 跨会话持久化 | 当前玩家 |
3.5 变量使用示例
计数器示例:
当点击时
新建局部变量 次数 为 获取自身属性 "点击次数"
设置自身属性 "点击次数" 为 次数 + 1
发送广播 "刷新显示"
结束生命值示例:
当受伤时
获取自身属性 "生命值"
设置自身属性 "生命值" 为 生命值 - 10
如果 生命值 <= 0 则
→ 发送广播 "角色死亡"
结束
结束四、广播
4.1 什么是广播
广播是一种「发消息给多个对象」的事件通知机制,用于让不同对象之间互相通信。
类比理解:
- 想象电台广播
- 发送者 = 电台
- 接收者 = 调到对应频道的听众
- 发送者不需要知道谁在收听
4.2 发送广播
发送广播 "广播名称"示例:
发送广播 "游戏开始"
发送广播 "按钮被点击"
发送广播 "金币变化"4.3 接收广播
当收到广播 "广播名称" 时
→ 执行相应逻辑
结束4.4 广播示例
UI发请求 → 地图处理 → UI刷新:
// UI层(按钮脚本)
当点击时
发送广播 "请求购买"
结束
// 地图层(商店脚本)
当收到广播 "请求购买" 时
→ 处理购买逻辑
→ 发送广播 "购买完成"
结束
// UI层(显示脚本)
当收到广播 "购买完成" 时
→ 刷新界面
结束4.5 广播命名规范
| 不推荐 | 推荐 | 说明 |
|---|---|---|
| 广播1 | 游戏开始 | 表达事件 |
| 刷新 | 金币变化 | 表达具体内容 |
| 改值 | 属性更新 | 表达动作 |
五、条件判断
5.1 如果语句
如果 [条件] 则
→ 执行操作
结束示例:
如果 获取玩家变量 金币 >= 100 则
→ 设置玩家属性 金币 为 金币 - 100
→ 发送广播 "购买成功"
结束5.2 如果...否则语句
如果 [条件] 则
→ 执行操作A
否则
→ 执行操作B
结束示例:
如果 获取玩家变量 金币 >= 100 则
→ 设置玩家属性 金币 为 金币 - 100
→ 发送广播 "购买成功"
否则
→ 发送广播 "金币不足"
结束5.3 多条件判断
如果 条件1 且 条件2 则
→ 执行操作
结束示例:
如果 生命值 > 0 且 存活 = 真 则
→ 继续游戏
结束六、循环
6.1 无限循环
无限循环
→ 执行操作
结束示例:
无限循环
等待 1 秒
发送广播 "定时检查"
结束6.2 循环若干次
重复 10 次
→ 执行操作
结束示例:
重复 5 次
新建局部变量 计数 为 计数 + 1
生成特效 在 随机位置
结束6.3 跳出循环
无限循环
→ 执行操作
如果 条件 = 真 则
→ 跳出循环
结束
结束七、常见脚本示例
7.1 开门机关
当点击时
如果 获取自身属性 "门状态" = "关闭" 则
设置自身属性 "门状态" 为 "开启"
播放动画 "开门"
否则
设置自身属性 "门状态" 为 "关闭"
播放动画 "关门"
结束
结束7.2 伤害检测
当碰撞时
新建局部变量 伤害值 为 获取当前碰撞对象的属性 "攻击力"
设置自身属性 "生命值" 为 生命值 - 伤害值
如果 生命值 <= 0 则
→ 发送广播 "敌人死亡"
→ 销毁自身
结束
结束7.3 收集物品
当碰撞时
发送广播 "获得物品"
播放音效 "拾取"
销毁当前碰撞对象
结束7.4 分数统计
当收到广播 "得分" 时
新建局部变量 当前分数 为 获取玩家变量 "总分"
设置玩家变量 "总分" 为 当前分数 + 参数.分数
发送广播 "刷新分数"
结束八、脚本调试
8.1 为什么脚本不执行
检查清单:
- 触发时机是否正确?
- 广播名称是否完全一致?
- 变量名是否写错?
- 条件判断是否正确?
- 对象是否还存在?
8.2 调试技巧
技巧1:添加日志
当点击时
发送广播 "调试_打印" 带参数 信息="脚本被执行了"
结束技巧2:分步测试
- 先测试发送端
- 再测试接收端
- 最后串联完整流程
技巧3:逐步注释
- 注释掉部分代码
- 逐段排查问题
8.3 常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| 脚本不执行 | 触发时机错误 | 检查触发时机设置 |
| 广播没效果 | 名称不一致 | 检查广播名称 |
| 变量丢失 | 作用域错误 | 检查变量类型 |
| 循环卡死 | 缺少等待 | 添加等待语句 |
九、快速参考
常用积木块
| 积木块 | 说明 |
|---|---|
新建局部变量 | 创建临时变量 |
设置自身属性 | 设置物体属性 |
发送广播 | 发送广播消息 |
如果...则 | 条件判断 |
无限循环 | 无限循环执行 |
等待 | 等待一段时间 |
播放音效 | 播放音效 |
生成特效 | 生成特效 |
销毁自身 | 销毁当前物体 |
隐藏 / 显示 | 显隐控制 |
关联阅读
教程资料
- 创游世界新手常见问题汇总 - 常见问题解答
- 创游世界变量作用域速查卡 - 变量速查
- 创游世界广播使用速查卡 - 广播速查
- 创游世界触发时机速查卡 - 触发时机速查
核心研究
- 创游世界广播机制完全指南 - 广播详解
- 创游世界变量与作用域完全指南 - 变量详解
- 创游世界数据类型完全指南 - 数据类型详解
项目设计
- 创游世界商店系统实战设计指南 - 商店系统
- 创游世界多地图与场景切换设计指南 - 多地图设计
导航入口
- 教程资料导航 - 教程资料总入口
- 创游世界知识库总导航 - 知识库总导航
- 新手阅读路线 - 学习路线导航
最后更新:2026-05-16维护者:Azek431
