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

创游世界变量作用域速查卡

一句话摘要

本文用一问一答的形式快速解释创游世界中的五种变量类型及其适用场景,帮助你快速判断「这个数据应该放在哪里」。

适合谁阅读

  • 遇到「变量值丢失」或「数据放错位置」问题的新手
  • 需要快速查阅变量作用域的开发者
  • 想理解数据分层的进阶用户

你将学到什么

  • 五种变量类型的核心区别
  • 每种变量的生命周期和存储位置
  • 什么时候用什么变量
  • 常见错误与正确做法

Q1:什么是变量?

A:变量是存储数据的容器,就像一个有名字的盒子,你可以往里面放数字、文本、开关状态等信息。


Q2:创游世界有哪几种变量?

A:五种:

变量类型通俗理解生命周期
局部变量一次性纸杯,用完就扔当前脚本执行完就消失
自身属性物体自己的口袋随物体存在
地图属性当前房间的公共区域随地图存在
系统属性整栋楼的公共区域整个游戏运行期间
玩家变量你的专属仓库(可存档)跨会话持久化

Q3:局部变量是什么?怎么用?

A:局部变量是脚本执行过程中临时创建的变量,只在当前脚本执行期间存在。

适合场景

  • 临时计算(比如 1+1=2 用完就扔)
  • 循环中的计数变量
  • 一次性判断条件

示例

新建局部变量 为 0
重复 10 次
    设置局部变量1 为 局部变量1 + 1
结束
发送广播 "完成第" + 局部变量1 + "次"

⚠️ 注意:局部变量执行完就消失,不能跨脚本持久,不能跨物体访问。


Q4:自身属性是什么?怎么用?

A:自身属性是挂载在当前物体上的数据,记录这个物体自己的状态。

适合场景

  • 这个物体的生命值
  • 这扇门是否开启
  • 这个敌人是否已激活
  • 这个技能是否在冷却

示例

// 检查门的状态
如果 获取自身属性 "是否开启" 等于 假
    设置自身属性 "是否开启" 为 真
    播放动画 "开门"
结束

⚠️ 注意:只有当前物体能访问自己的自身属性。


Q5:地图属性是什么?怎么用?

A:地图属性是挂载在当前地图上的数据,当前地图里所有物体都能访问。

适合场景

  • 当前波次(所有怪物都要知道)
  • 地图内任务状态
  • 地图倒计时
  • 地图内货币池

示例

// 增加波次
设置当前地图属性 "当前波次" 为 获取当前地图属性 "当前波次" + 1
如果 获取当前地图属性 "当前波次" 大于 获取当前地图属性 "总波次"
    发送广播 "关卡完成"
结束

⚠️ 注意:切换地图后数据会重置。


Q6:系统属性是什么?怎么用?

A:系统属性是挂载在系统层的数据,整个游戏里所有地方都能访问。

适合场景

  • 全局设置(难度、模式)
  • 联机房间状态
  • 跨地图的流程控制

⚠️ 注意:不要滥用系统属性,否则后期所有逻辑都在「抢写同一层全局状态」。


Q7:玩家变量是什么?怎么用?

A:玩家变量是绑定到玩家账号的数据,可以持久化保存。

适合场景

  • 玩家的金币数量
  • 玩家的背包物品
  • 玩家的任务进度
  • 玩家的等级、装备

示例

设置玩家变量 "金币" 为 100
设置玩家变量 "等级" 为 1

⚠️ 注意:玩家变量是最可靠的持久化层。


Q8:什么时候用什么变量?

A:记住这个口诀:

场景推荐变量
临时计算,用完就扔局部变量
这个物体自己的状态自身属性
地图里大家共享的状态地图属性
全局/跨地图的状态系统属性
玩家相关要存档的数据玩家变量

Q9:为什么变量值会丢失?

A:大概率是你把应该存档的数据放在了局部变量或自身属性里。

问题原因解决方法
局部变量执行完就消失需要持久化的数据改用玩家变量
切换地图后数据丢失跨地图数据改用玩家变量或系统属性
其他物体无法访问改用地图属性或玩家变量

Q10:切换地图后数据丢失怎么办?

A:这通常是把「真值」放在了错误的地方。

问题原因解决
UI 上的数值丢失UI 状态 ≠ 真值真值放在地图层或系统层
玩家金币丢失没用玩家变量改用玩家变量
地图状态丢失用了局部变量改用地图属性或玩家变量

Q11:局部变量和自身属性有什么区别?

A

区别局部变量自身属性
生命周期脚本执行完就消失随物体存在
访问范围只有当前脚本能访问只有当前物体能访问
跨触发保留❌ 不保留✅ 保留
跨对象访问❌ 不能❌ 不能

Q12:玩家变量和系统属性有什么区别?

A

区别玩家变量系统属性
绑定的对象玩家账号游戏全局
持久化✅ 可存档❌ 通常不存档
跨玩家共享❌ 各玩家独立✅ 所有玩家共享
典型用途金币、背包、进度游戏模式、房间状态

Q13:怎么选择变量的存储位置?

A:问自己这四个问题:

1. 这个数据需要持久化吗?
   → 是 → 玩家变量
   → 否 → 继续看

2. 这个数据属于谁?
   → 单个物体 → 自身属性
   → 地图内共享 → 地图属性
   → 全局共享 → 系统属性

3. 这个数据是静态规则吗?
   → 是 → 配置表
   → 否 → 属性或变量

Q14:常见错误有哪些?

A

错误做法问题正确做法
把金币存到局部变量切地图就消失用玩家变量
把波次存到自身属性其他怪物读不到用地图属性
所有东西都放系统属性后期逻辑混乱按需分层
把 UI 当成数据来源切地图数据丢失真值放地图层

Q15:一句话总结

A:记住这三条:

  1. 临时计算用局部变量
  2. 状态用属性(自身/地图/系统,看范围)
  3. 要存档用玩家变量

相关页面



待验证问题

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

问题状态验证方向
局部变量在联机环境下的行为🔄 待验证需要联机环境测试
系统属性在不同版本下的生命周期细节🔄 待验证需要多版本对比
玩家变量在跨游戏存档的具体限制🔄 待验证需要官方文档确认

📝 说明:变量作用域核心概念已稳定,联机行为属于进阶内容。

后续优化方向

  • [ ] 补充更多实战场景示例
  • [ ] 添加变量选择的流程图
  • [ ] 补充联机同步相关说明

参与维护

发现文档问题?

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

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