Skip to content

SE UGC Lua 开发系列 ​

面向新晋作者的 SE UGC Lua 系列教程。

本系列按 API 领域展开,共 23 章,并提供 Capstone 综合工程。希望从两行日志逐课做出推球小游戏,也可以选择SE Lua 零基础实战:推球撞方块。这是两套各有侧重的独立系列教程,请按学习目标自由选择。

面向用过蛋仔编辑器、准备学习 Lua 并组织完整玩法的作者。每章先说明准备条件、代码放在哪里和应观察什么,再提供练习参考与排错方法。没有 Lua 基础时,从第 0 章的最小语法词典开始,在独立实验中逐项理解。

第一次打开时怎么做 ​

如果你不知道从哪里开始,先只完成这四步:

  1. 阅读第 0 章,写出自己的 editor / server / client / data 分工草表。
  2. 按第 1 章生成工程,只保留最小 client/server 日志,确认两端都运行。
  3. 在测试地图放置并命名“球体”“方块”,按第 2–6 章跑通第一次碰撞反馈。
  4. 每一步先对照“期望结果”和“常见错误”;当前一步没有通过,不要继续叠加 UI、存档或平台服务。

完全没写过 Lua 时,遇到不认识的语法先回看第 0 章的词典;已经会 Lua 的作者可以直接从第 1 章开始。完成基础实验后,第 19、21、22 章负责把能力组装成完整项目。

发布与兼容性 ​

开始学习前请先阅读发布说明、适用环境与验证范围。该页记录本次 Meta/Editor 基线、编译与行为实测的区别、未验证能力、反馈方式和内容使用边界。

  • 下载完整 Capstone Lua 工程
  • 教程与 API 页面冲突时,以目标版本的正式 API 页面和 Meta 为准,并停止复制冲突片段。
  • “已编译”不等于“行为已验证”;各章期望效果仍需在自己的测试地图验收。

阅读路径 ​

  • 基础实验:第 0–10 章,分别验证工程、对象、事件、通信、UI 和配置。
  • 完整项目:第 19、21、22 章,学习模块组装,安装六文件工程,验收两局推球玩法。
  • 按需扩展:第 11–18、20 章,选择存储、物理、角色、资产或平台服务;这些能力不必全部接入。

代码块阅读约定 ​

每块 Lua 上方都有“示例编号、类别、文件或调用条件”,按该标注操作:

  • 完整模块与配置:保存到指定路径;data/*.lua 也是 Lua 模块,首次 require 时执行并返回表,不能自行启动玩法。
  • 配套入口:先安装声明的依赖,再整体替换实验地图的同名文件。
  • 独立实验:一次只运行一块,停止试玩后再换下一块;各章同名文件不代表能互相混装。
  • 函数片段、调用对照与错误示例:按说明调用、一次选择一种动作或只读,不能把整块原样当完整功能。
  • testspec 与 evidence 模板:是测试说明和记录,不是 Lua 程序。

-- @runtime client/server 标注本块演示的执行端。common/data 模块可由两端分别加载,标注不把它们变成自动执行入口。下载包由第 22 章的六个完整代码块生成,不需要从前 21 章手动拼接。

最终文档目录 ​

章标题
00第 0 章:从可视化编辑器到状态同步 Lua 开发
01第 1 章:脚本工程、目录结构与运行入口
02第 2 章:编辑器对象、属性、坐标与枚举在 Lua 中的表达
03第 3 章:统一世界、双端模型与逻辑帧
04第 4 章:Game 与 Services
05第 5 章:Unit 与场景树
06第 6 章:事件、Timer 与 Task
07第 7 章:Players、输入与角色
08第 8 章:客户端与服务端通信
09第 9 章:UI / EUI 与 CoreGui
10第 10 章:数据脚本、配置与资产 URI
11第 11 章:数据存储与排行榜
12第 12 章:物理、碰撞、Raycast、约束与运动器
13第 13 章:角色系统——EggyUnit、HumanUnit 与外观
14第 14 章:角色控制与动画——Controller 与 Animator
15第 15 章:相机系统——CameraService 与 CameraUnit
16第 16 章:音效、特效与场景渲染
17第 17 章:资产加载——用 preset 创建模型
18第 18 章:自定义资产系统
19第 19 章:可复用系统——Manager、生命周期与依赖边界
20第 20 章:平台服务:聊天、跨服、社交、商业化、埋点
21第 21 章:测试、调试、日志与 QA
22第 22 章:Capstone 综合项目