# game_learn **Repository Path**: dongjinlong123/game_learn ## Basic Information - **Project Name**: game_learn - **Description**: 学习笔记 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-01 - **Last Updated**: 2026-04-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🎮 2D 平台跳跃游戏 一个基于 Unity引擎开发的 2D 平台跳跃游戏,包含玩家控制、敌人AI、金币收集、游戏管理等核心功能。 ## 📋 项目简介 本项目是一个完整的 2D 平台游戏 demo,适合作为学习 Unity 游戏开发或作为项目起点。代码结构清晰,注释详细,便于理解和扩展。 ## ✨ 功能特性 ### 玩家系统 - **移动控制** - 流畅的左右移动 - **跳跃系统** - 支持多段跳(默认二段跳) - **血量系统** - 受伤后短暂无敌时间 - **死亡检测** - 掉出地图或被敌人攻击死亡 ### 敌人系统 - **巡逻 AI** - 定时往返巡逻 - **悬崖检测** - 自动检测地形边缘 ### 收集系统 - **金币** - 收集增加分数,带有旋转和上下浮动动画 ### 游戏管理 - **计分系统** - 实时追踪金币数量 - **游戏状态** - 游戏胜利/失败判定 - **场景管理** - 支持重新开始和场景切换 ### 音频系统 - **背景音乐** - 可调节音量 - **音效** - 跳跃、受伤、收集金币、游戏胜利/失败音效 ### 相机系统 - **跟随玩家** - 平滑追踪 - **边界限制** - 可选设置相机移动范围 ### UI 系统 - **分数显示** - 实时显示收集的金币数 - **生命值显示** - 心图标示血量 - **结束面板** - 游戏胜利/失败界面 ## 📁 项目结构 ``` PlatformerGame/ ├── Assets/ │ ├── Scripts/ │ │ ├── Enemy/ │ │ │ └── EnemyPatrol.cs # 敌人巡逻 │ │ ├── Items/ │ │ │ └── Coin.cs # 金币 │ │ ├── Managers/ │ │ │ ├── AudioManager.cs # 音频管理 │ │ │ ├── CameraFollow.cs # 相机跟随 │ │ │ ├── GameManager.cs # 游戏管理 │ │ │ └── UIManager.cs # UI管理 │ │ ├── Player/ │ │ │ ├── KillZone.cs # 死亡区域 │ │ │ ├── PlayerController.cs # 玩家控制 │ │ │ └── PlayerHealth.cs # 玩家血量 │ └── ... └── ... ``` ## 🚀 快速开始 ### 环境要求 - Unity 2020.3 或更高版本 - 建议使用 VS Code 或 Rider 作为代码编辑器 ### 运行项目 1. 使用 Unity Hub 打开 `PlatformerGame` 文件夹 2. 在 Unity 编辑器中打开 scenes 目录下的任意场景 3. 点击播放按钮运行游戏 ### 操作说明 | 按键 | 功能 | |------|------| | ← / → | 左右移动 | | Space / ↑ | 跳跃 | ## 🎯 脚本配置说明 ### PlayerController - `moveSpeed` - 移动速度 - `jumpForce` - 跳跃力度 - `maxJumpCount` - 最大跳跃次数 ### EnemyPatrol - `moveSpeed` - 巡逻移动速度 - `patrolDistance` - 巡逻范围 - `detectCliff` - 是否开启悬崖检测 ### Coin - `value` - 金币分值 - `rotateSpeed` - 旋转速度 - `bobSpeed` / `bobHeight` - 浮动参数 ### GameManager - `totalCoins` - 关卡总金币数 - 通过单例模式访问:`GameManager.Instance.AddScore(1)` ## 📄 许可证 本项目仅供学习交流使用,禁止用于商业目的。