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

创游世界脚本入门实践

一句话摘要

通过三个最小练习项目,带你从"会拖素材"升级到"会写脚本"。每个练习都是独立可运行的最小闭环,做完就能理解脚本的核心工作方式。

适合谁阅读

  • 已经知道"素材、物体、组件"是什么,但还不会写脚本的新手
  • 看过教程但不知道"我到底该怎么开始写"
  • 想通过动手实践学习而不是只看概念的人

你将学到什么

  • 如何创建第一个脚本
  • 触发时机怎么选
  • 变量怎么用
  • 广播怎么发
  • 如何把多个脚本块串成一个完整功能

核心结论

  1. 脚本就是"当...发生时,做...":触发时机是"当",积木块是"做"
  2. 先让功能跑起来,再优化:不要一开始就想写完美代码
  3. 每个最小闭环都包含:触发→判断→执行→反馈

练习准备:创建你的练习项目

在开始之前,创建一个新项目,命名为"脚本练习"。

项目中需要准备:

  • 一个可控制角色(带角色组件和物理组件)
  • 一个交互物体(带可互动组件)
  • 一个地图UI

练习一:点击按钮,显示提示

目标

点击场景中的一个按钮物体,屏幕上方显示"你点击了按钮"的文字提示。

需要的组件

  • 按钮物体:可互动 组件

需要的脚本逻辑

当 点击时
  显示"你点击了按钮"在 地图UI上

详细步骤

  1. 在素材区创建一个"按钮"素材(可以是任何你觉得像按钮的图片)
  2. 把按钮素材拖入地图中
  3. 给按钮添加 可互动 组件
  4. 点击按钮,在脚本编辑器中点击 +添加触发时机,选择 当 点击时
  5. 在积木块中找到 显示 相关块
  6. 填入提示文字和目标UI
  7. 保存,试玩

你学到了什么

  • 触发时机 当 点击时 是怎么工作的
  • 如何让物体响应玩家操作
  • 显示文本到UI的基本方法

练习二:计数器功能

目标

点击按钮一次,计数器+1,并在UI上显示当前计数。

需要的组件

  • 按钮物体:可互动 组件
  • 一个地图UI:用于显示计数器

需要的脚本逻辑

当 点击时
  新建局部变量 为 0
  设置局部变量1 为 局部变量1 + 1
  设置UI文本为 "计数:" + 局部变量1

详细步骤

  1. 创建一个用于显示计数的UI(可以是文字UI)
  2. 给按钮添加 可互动 组件
  3. 当 点击时 脚本中:
    • 新建一个局部变量,初始值为0
    • 把变量+1
    • 设置当前UI元素属性 或类似块,把UI文字设置为当前计数
  4. 保存,试玩

你学到了什么

  • 局部变量的创建和使用
  • 变量可以用来计数
  • UI文字可以动态更新

注意

这个练习用了局部变量,所以每次点击计数器都会重置为1。下一节我们会改进这个问题。


练习三:带持久化的计数器

目标

点击按钮,计数器+1,即使切换地图后回来,计数也保持不变。

需要的组件

  • 按钮物体:可互动 组件
  • 一个地图UI:用于显示计数器

需要的脚本逻辑

当 点击时
  设置自身属性1 为 自身属性1 + 1
  设置UI文本为 "计数:" + 自身属性1
  广播"刷新计数"

---

当 广播"刷新计数"时
  设置UI文本为 "计数:" + 自身属性1

详细步骤

  1. 同样创建按钮和UI
  2. 当 点击时 中:
    • 局部变量 换成 自身属性1
    • 点击后发送广播 "刷新计数"
  3. 添加一个新的触发时机 当 广播"刷新计数"时
    • 收到广播后,把UI文字更新为当前计数
  4. 保存,试玩
  5. 切换地图再回来,看看计数是否保持

你学到了什么

  • 局部变量 vs 自身属性的区别
  • 自身属性可以跨触发时机保持数据
  • 广播可以用来让多个脚本协同工作

常见问题

Q:为什么切换地图后计数又变成0了?

A:因为物体在切换地图时会被销毁,重新进入地图后会重新创建,所以自身属性也会重置。如果需要跨地图保持,要用玩家变量。


练习四:简单的货币系统

目标

点击"领取金币"按钮,获得100金币,货币显示在UI上。

需要的组件

  • 领取按钮:可互动 组件
  • 货币显示UI:显示当前金币数量

需要的脚本逻辑

当 点击时
  设置玩家变量1 为 玩家变量1 + 100
  广播"刷新货币"

---

当 开始时
  广播"刷新货币"

---

当 广播"刷新货币"时
  设置货币UI文本为 "金币:" + 玩家变量1

详细步骤

  1. 创建"领取按钮"和"货币显示"UI
  2. 领取按钮脚本:
    • 玩家变量+100
    • 广播"刷新货币"
  3. 开始时脚本:
    • 广播"刷新货币"(确保进入地图时显示当前货币)
  4. 刷新货币脚本:
    • 更新UI文字
  5. 保存,试玩
  6. 关闭游戏重新打开,看看货币是否保持

你学到了什么

  • 玩家变量可以跨会话持久化
  • 广播可以用来解耦UI和逻辑
  • 进入地图时初始化UI是个好习惯

练习五:简单的对话框

目标

点击NPC,弹出对话框显示NPC说的话,点击"确定"后对话框消失。

需要的组件

  • NPC物体:可互动 组件
  • 对话框UI:包含文字和确定按钮

需要的脚本逻辑

NPC脚本:

当 点击时
  显示对话框UI
  设置对话框文字为 "你好,我是NPC。"

对话框确定按钮脚本:

当 点击时
  隐藏对话框UI

详细步骤

  1. 创建NPC和对话框UI(对话框默认隐藏)
  2. NPC点击时:显示对话框,设置文字
  3. 对话框确定按钮:隐藏对话框
  4. 保存,试玩

你学到了什么

  • 如何控制UI的显示和隐藏
  • 如何在点击NPC时传递信息给UI
  • 对话框的基本实现方式

从练习到实战:如何扩展

计数器 → 任务系统

把计数的"点击次数"改成"击杀怪物次数":

  • 怪物死亡时发送广播
  • 任务脚本接收广播,变量+1
  • 显示任务进度

货币系统 → 商店系统

在领取金币基础上加购买逻辑:

  • 判断金币是否足够
  • 扣除金币
  • 给予道具

对话框 → 对话树

在简单对话框基础上加选项:

  • 显示多个选项按钮
  • 根据点击的选项,跳转到不同的后续对话
  • 记录对话进度

常见问题

Q:为什么我的脚本不执行?

A:检查以下几点:

  1. 是否添加了正确的触发时机?
  2. 是否保存了脚本?
  3. 物体是否有对应的组件?
  4. 是否在试玩模式下运行?

Q:为什么UI不显示?

A

  1. UI是否已经添加到地图?
  2. UI的默认显示状态是否正确?
  3. 是否使用了正确的UI指令?

Q:变量值不对怎么办?

A:使用"查看数值"功能,查看当前变量的实际值,确认脚本执行顺序是否符合预期。


下一步建议

完成这些练习后,你可以继续学习:

参与维护

发现文档问题?

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

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