主题
做一个简易版《疯狂农场》
单人、简易版的疯狂农场:先打通一条链路——种下去、等它长、搬去卖换分数。
我们要做什么
一个简易版的《疯狂农场》。这类玩法的核心就一件事:种下去、等它长、收起来换钱。
这套教程只做这条主线上最要紧的部分,而且是单人的:先把一条链路从头到尾打通,再想别的。
走到地前点一下——种子破土升起,然后一点点长大。 长到头,地上结出一颗果实;抓起它跑到旁边的放置区,果实被收走,屏幕上飘出分数。 偶尔结出的是变异果实:带特效、分数三倍。
做完之后,它有什么
| 能做 | 具体是什么 | 哪一课 |
|---|---|---|
| 种下去 | 走到地前点一下,种子破土升起;点过一次就点不了第二次 | 02 |
| 长起来 | 计时器让它一点点变大,长到头结出一颗果实 | 03 |
| 搬去卖 | 果实能抓在手里带走;放进放置区换成分数 | 03 / 05 |
| 看得见 | 作物上方一条只属于自己的进度条;卖出时飘出分数 | 04 / 05 |
| 反复种 | 一块地能种很多次——用完是还原,不是销毁 | 06 |
| 偶尔出惊喜 | 结出带特效的变异果实,分数按倍率翻 | 06 |
| 东西能复用 | 预设、复制、配置表:做一次,用很多次 | 03 / 06 |
| 往后能接着加 | 天气、一整片田(可选练习);加人该改哪几处有清单 | 07 |
一共 7 课
前 5 课把一条链路打通,后 2 课打磨收尾。
| 阶段 | 课 | 做出什么 | 做完能干什么 |
|---|---|---|---|
| 一 · 一条链路 | 01–05 | 一块地、种下、长大结果实、进度条、搬进放置区换分 | "种 → 长 → 搬 → 卖"整条通了 |
| 二 · 打磨与收尾 | 06–07 | 田地能反复种、偶尔出变异果实;再做两个可选练习 | 跑得通,也改得动 |
只做单人:判定都写在服务端,以后想加人不用推倒重来(要改哪几处,第 07 课有清单)。
你会学到什么
- 看场景:东西挂在
World下才算"在场景里";能力靠在物件上挂子组件 - 写事件:组件的自定义事件(比如「种植」),以及服务端和客户端之间的
RemoteEvent - 控节奏:用计时器做"到点做事"和"分步变化",也知道物件被销毁、玩家退出时它会怎样
- 放数据:跟物件的进属性(
持有者、变异),跟人的进玩家属性(score);算不算数都由服务端定 - 摆界面:属于物件的挂场景 UI,属于玩家的挂屏幕 UI;该通知谁就通知谁
- 省力气:预设、
Clone、配置表——做一次,用很多次 - 收尾:用过的状态能还原,工程能拆成模块
常用词(全课程统一)
| 词 | 代码里 | 意思 |
|---|---|---|
| 预设 / 实例 | 预设列表 / 场景里那一份 | 预设是原材料,取出来的是实例;改一个不影响另一个 |
| 种子 | 地块下的 种子 | 从"破土升起"到"长大"都是它在变 |
| 果实 | 用预设创建出来的物件 | 有物理、能抓;搬进放置区换分 |
| 持有者 | 果实属性 持有者 | 最后拿起它的人——分算在他头上 |
| 变异 | 果实属性 变异 | 带特效的特殊果实,分数按倍率翻 |
| 分数 | 玩家属性 score | 跟人走:记在玩家身上,退出再进还在 |
| 标签 | TagService | 贴在物件上的记号(比如 果实);改名、换父节点都不影响 |
| 场景 UI / 屏幕 UI | CreateSceneUIByPrefabKeyAttachUnit / GetRootNode() | 挂在物件身上的界面 / 挂在玩家屏幕上的界面 |
| 物件脚本 | 挂在预设上的服务器脚本 | 逻辑跟着这个物件走;不在工程文件树里,要用属性面板打开 |
开始之前
- 装编辑器 + VS Code。地图不用提前做,第 01 课从"新建地图"开始。
- 第 02 课配一次工程:生成工程、用 VS Code 打开、看日志窗口。配这一次,后面每课都省事。
- 改坏了不怕:每课末尾都有"恢复兜底",用完整工程包覆盖同名目录就能回到基准。
- 边做边试:每课都有"运行并核对",写了该看到什么。现象不对,先照那张排查表对一遍,再往下走。
从第 01 课开始。
