一个简单的 2D 农场模拟系统,实现了基本的种植、收获、动物成长管理等功能,灵感来源于《星露谷物语》。此项目旨在练习 Unity 游戏开发以及软件工程中的架构设计。
该项目包含以下主要功能:
- 作物系统:玩家可以种植作物(胡萝卜、西红柿),并观察它们随时间成长,最终成熟后收获。
- 动物系统:游戏中生成可爱的动物(如鸡和牛),并随着时间成长。
- 背包管理:支持种子、工具和作物的管理,自动添加收获物。
- 工具栏系统:动态显示玩家当前选中的道具状态。
- 高可扩展性:支持通过
ScriptableObject快速扩展作物和动物数据。
- 种植:玩家可在锄过的土地上种植种子,每种作物具有多阶段的成长周期。
- 成长阶段:通过设置不同阶段的
Sprite,动态更新作物的外观。 - 收获:作物成熟后,玩家可以将其收获并自动存入背包。
- 动物生成:游戏初始化时自动生成动物。
- 成长:动物随时间长大,改变其外观。
- 物品管理:支持种子数量减少、工具切换、收获物添加到背包。
- 动态更新:工具栏实时展示玩家当前选中的道具。
项目采用 分层架构(Layered Architecture),将逻辑层、管理层和表现层分离,便于扩展和维护。
| 组件名 | 功能概述 |
|---|---|
| PlantManager | 管理作物的种植、成长和收获逻辑。 |
| AnimalManager | 管理动物的生成、成长和状态更新。 |
| InventoryManager | 管理玩家的背包和工具栏,包括物品的添加和移除。 |
| Player | 处理玩家输入和动作(如种植、收获、移动)。 |
| ToolbarUI | 显示玩家的工具栏状态,并支持物品切换与使用。 |
| GameData | 使用 ScriptableObject 保存作物和动物的静态数据。 |
- Unity 版本:Unity 2023.1 或更高版本
- 编程语言:C#
-
克隆本仓库:
-
打开 Unity 并加载项目文件夹。
-
打开
SampleScene,点击 播放 按钮开始游戏。
Assets/
├── Animations/ # 动画相关资源
├── Prefabs/ # 预制体(作物、动物、UI 等)
├── Resources/ # ScriptableObject 数据
├── Scenes/ # 场景文件
├── Scripts/ # 项目核心脚本
│ ├── Manager/ # 管理类(PlantManager、AnimalManager 等)
│ ├── UI/ # UI 管理脚本(ToolbarUI 等)
│ └── Player.cs # 玩家脚本
└── Sprites/ # 游戏使用的 2D 图像素材
未来可以添加的功能:
- 天气系统:影响作物成长速度和动物状态。
- NPC 交互:玩家可与 NPC 交易作物和动物。
- 经济系统:加入金钱系统,用作物换取货币,购买新种子或动物。
- 更复杂的作物管理:支持灌溉、施肥等功能。
欢迎对本项目提出建议或提交 PR!
如需联系,请发送邮件至:[email protected]。