创游世界脚本入门实践
一句话摘要
通过三个最小练习项目,带你从"会拖素材"升级到"会写脚本"。每个练习都是独立可运行的最小闭环,做完就能理解脚本的核心工作方式。
适合谁阅读
- 已经知道"素材、物体、组件"是什么,但还不会写脚本的新手
- 看过教程但不知道"我到底该怎么开始写"
- 想通过动手实践学习而不是只看概念的人
你将学到什么
- 如何创建第一个脚本
- 触发时机怎么选
- 变量怎么用
- 广播怎么发
- 如何把多个脚本块串成一个完整功能
核心结论
- 脚本就是"当...发生时,做...":触发时机是"当",积木块是"做"
- 先让功能跑起来,再优化:不要一开始就想写完美代码
- 每个最小闭环都包含:触发→判断→执行→反馈
练习准备:创建你的练习项目
在开始之前,创建一个新项目,命名为"脚本练习"。
项目中需要准备:
- 一个可控制角色(带角色组件和物理组件)
- 一个交互物体(带可互动组件)
- 一个地图UI
练习一:点击按钮,显示提示
目标
点击场景中的一个按钮物体,屏幕上方显示"你点击了按钮"的文字提示。
需要的组件
- 按钮物体:
可互动组件
需要的脚本逻辑
当 点击时
显示"你点击了按钮"在 地图UI上详细步骤
- 在素材区创建一个"按钮"素材(可以是任何你觉得像按钮的图片)
- 把按钮素材拖入地图中
- 给按钮添加
可互动组件 - 点击按钮,在脚本编辑器中点击
+添加触发时机,选择当 点击时 - 在积木块中找到
显示相关块 - 填入提示文字和目标UI
- 保存,试玩
你学到了什么
- 触发时机
当 点击时是怎么工作的 - 如何让物体响应玩家操作
- 显示文本到UI的基本方法
练习二:计数器功能
目标
点击按钮一次,计数器+1,并在UI上显示当前计数。
需要的组件
- 按钮物体:
可互动组件 - 一个地图UI:用于显示计数器
需要的脚本逻辑
当 点击时
新建局部变量 为 0
设置局部变量1 为 局部变量1 + 1
设置UI文本为 "计数:" + 局部变量1详细步骤
- 创建一个用于显示计数的UI(可以是文字UI)
- 给按钮添加
可互动组件 - 在
当 点击时脚本中:- 新建一个局部变量,初始值为0
- 把变量+1
- 用
设置当前UI元素属性或类似块,把UI文字设置为当前计数
- 保存,试玩
你学到了什么
- 局部变量的创建和使用
- 变量可以用来计数
- UI文字可以动态更新
注意
这个练习用了局部变量,所以每次点击计数器都会重置为1。下一节我们会改进这个问题。
练习三:带持久化的计数器
目标
点击按钮,计数器+1,即使切换地图后回来,计数也保持不变。
需要的组件
- 按钮物体:
可互动组件 - 一个地图UI:用于显示计数器
需要的脚本逻辑
当 点击时
设置自身属性1 为 自身属性1 + 1
设置UI文本为 "计数:" + 自身属性1
广播"刷新计数"
---
当 广播"刷新计数"时
设置UI文本为 "计数:" + 自身属性1详细步骤
- 同样创建按钮和UI
- 在
当 点击时中:- 把
局部变量换成自身属性1 - 点击后发送广播
"刷新计数"
- 把
- 添加一个新的触发时机
当 广播"刷新计数"时:- 收到广播后,把UI文字更新为当前计数
- 保存,试玩
- 切换地图再回来,看看计数是否保持
你学到了什么
- 局部变量 vs 自身属性的区别
- 自身属性可以跨触发时机保持数据
- 广播可以用来让多个脚本协同工作
常见问题
Q:为什么切换地图后计数又变成0了?
A:因为物体在切换地图时会被销毁,重新进入地图后会重新创建,所以自身属性也会重置。如果需要跨地图保持,要用玩家变量。
练习四:简单的货币系统
目标
点击"领取金币"按钮,获得100金币,货币显示在UI上。
需要的组件
- 领取按钮:
可互动组件 - 货币显示UI:显示当前金币数量
需要的脚本逻辑
当 点击时
设置玩家变量1 为 玩家变量1 + 100
广播"刷新货币"
---
当 开始时
广播"刷新货币"
---
当 广播"刷新货币"时
设置货币UI文本为 "金币:" + 玩家变量1详细步骤
- 创建"领取按钮"和"货币显示"UI
- 领取按钮脚本:
- 玩家变量+100
- 广播"刷新货币"
- 开始时脚本:
- 广播"刷新货币"(确保进入地图时显示当前货币)
- 刷新货币脚本:
- 更新UI文字
- 保存,试玩
- 关闭游戏重新打开,看看货币是否保持
你学到了什么
- 玩家变量可以跨会话持久化
- 广播可以用来解耦UI和逻辑
- 进入地图时初始化UI是个好习惯
练习五:简单的对话框
目标
点击NPC,弹出对话框显示NPC说的话,点击"确定"后对话框消失。
需要的组件
- NPC物体:
可互动组件 - 对话框UI:包含文字和确定按钮
需要的脚本逻辑
NPC脚本:
当 点击时
显示对话框UI
设置对话框文字为 "你好,我是NPC。"对话框确定按钮脚本:
当 点击时
隐藏对话框UI详细步骤
- 创建NPC和对话框UI(对话框默认隐藏)
- NPC点击时:显示对话框,设置文字
- 对话框确定按钮:隐藏对话框
- 保存,试玩
你学到了什么
- 如何控制UI的显示和隐藏
- 如何在点击NPC时传递信息给UI
- 对话框的基本实现方式
从练习到实战:如何扩展
计数器 → 任务系统
把计数的"点击次数"改成"击杀怪物次数":
- 怪物死亡时发送广播
- 任务脚本接收广播,变量+1
- 显示任务进度
货币系统 → 商店系统
在领取金币基础上加购买逻辑:
- 判断金币是否足够
- 扣除金币
- 给予道具
对话框 → 对话树
在简单对话框基础上加选项:
- 显示多个选项按钮
- 根据点击的选项,跳转到不同的后续对话
- 记录对话进度
常见问题
Q:为什么我的脚本不执行?
A:检查以下几点:
- 是否添加了正确的触发时机?
- 是否保存了脚本?
- 物体是否有对应的组件?
- 是否在试玩模式下运行?
Q:为什么UI不显示?
A:
- UI是否已经添加到地图?
- UI的默认显示状态是否正确?
- 是否使用了正确的UI指令?
Q:变量值不对怎么办?
A:使用"查看数值"功能,查看当前变量的实际值,确认脚本执行顺序是否符合预期。
下一步建议
完成这些练习后,你可以继续学习:
- 创游世界脚本入门完全指南 - 了解脚本的完整能力
- 广播机制深度解析 - 深入理解广播
- 创游世界UI数据同步架构 - 复杂UI设计
