一个基于 Unity 2D 的横版跑酷原型项目,包含角色移动/跳跃、关卡陷阱与传送、道具收集,以及事件驱动的 UI 流程(开始、选关、暂停、失败、胜利)。
- 引擎版本:
Unity 2022.3.57f1c2 - 场景流程:
Begin(开始/选关) ->Scene1/Scene2(关卡) - 输入系统:Unity New Input System(
com.unity.inputsystem) - 核心特点:
- 角色基础动作:行走、奔跑、跳跃、死亡动画
- 触发器道具:可收集、致命陷阱、推力机关、平滑传送、胜利点
- 事件驱动 UI:开始面板、选关面板、暂停面板、失败面板、胜利面板
- 轻量状态机:自定义 FSM 管理角色动画状态
A / D:左右移动Shift:奔跑Space:跳跃P:暂停
对应输入定义位于 Assets/InputSystem/PlayerInput.inputactions(生成代码:Assets/Scripts/Input/GeneratedInputActions.cs)。
- 使用 Unity Hub 打开本项目根目录。
- 确保编辑器版本为
2022.3.57f1c2(见ProjectSettings/ProjectVersion.txt)。 - 打开
Assets/Scenes/Begin.unity。 - 点击 Play 进入游戏:
- 开始面板 -> 选关面板 -> 进入
Scene1或Scene2。
- 开始面板 -> 选关面板 -> 进入
GameEventManager在运行时触发并广播事件:OnGameStart:显示开始面板OnGameSelect:显示选关面板OnGamePaused:显示/隐藏暂停面板OnGameOver:显示失败面板OnGameWin:显示胜利面板
- 玩家触发胜利点(
CWinner)后会禁用角色控制并触发胜利事件。 - 玩家触发致命区域(
CDeadly)后播放死亡动画,随后触发失败事件。
Assets/Scripts/Character/PlayerController.cs- 物理移动、地面检测、跳跃、死亡/重生流程
Assets/Scripts/Character/PlayerInputHandler.cs- 读取输入并触发暂停事件
Assets/Scripts/Character/PlayerAnimationHandler.cs- 根据输入和物理状态切换动画
Assets/Scripts/Character/States/*.csIdle / Walk / Run / Jump / Die状态实现
Assets/Scripts/Core/FSM/FSM.csAssets/Scripts/Core/FSM/StateBase.csAssets/Scripts/Core/FSM/IState.cs
Assets/Scripts/Core/GameEventManager.cs- 全局事件中心,控制游戏流程与背景音乐
Assets/Scripts/UI/UIManager.cs- 面板实例化与显示管理
Assets/Scripts/UI/UIController.cs- 订阅游戏事件并切换面板
Assets/Scripts/UI/Panels/*.cs- 开始、选关、暂停、失败、胜利面板逻辑
Assets/Scripts/Items/CAvailable.cs:可收集物品Assets/Scripts/Items/CDeadly.cs:致命陷阱Assets/Scripts/Items/CPushable.cs:推力机关Assets/Scripts/Items/CTransfer.cs:平滑传送Assets/Scripts/Items/CWinner.cs:胜利触发点Assets/Scripts/Items/ItemManager.cs:收集计数管理