[Unity] 平台跳跃游戏 角色控制器 教程合集 | 如何制作平台跳跃游戏 | 做一个超级马里奥那样的游戏 | 状态机架构 | 虚拟相机 | 输入系统
➤教程内容
- Finite State Machine 状态机架构
- Unity新的输入系统 Input System
- 虚拟相机 Cinemachine
- 二段跳,土狼时间,小跳,预输入等角色控制的实现
---------------------------------
你好啊!我是阿严,一个小小的独立游戏开发者与自由艺术家。
我的频道的主要内容是独立游戏的开发教程与日志。
欢迎订阅我的频道不错过更新~
➤独立游戏开发研究交流Q群1:236873600 (已满,偶尔有位置)
➤独立游戏开发研究交流Q群2:638118294
➤YouTube - https://www.youtube.com/c/RYanIndieDev
➤Discord - https://discord.gg/ZmTgSCe4Jq
➤Twitter - https://twitter.com/XuZuyan
➤FaceBook - https://www.facebook.com/Yan.YouTube
➤ArtStation - https://www.artstation.com/xuzuyan
---------------------------------
➤游戏试玩 / 资源包 / 相关课件 / 源码
- GitHub - https://github.com/AtCloudStudio/PlatformerControllerTutorial
- Gitee - https://gitee.com/ryanindiedev/PlatformerControllerTutorial
---------------------------------
➤项目所使用到的资源链接
- Unity-chan
- Official Site: https://unity-chan.com/
- Asset Store:
- https://assetstore.unity.com/packages/3d/animations/sd-chan-animation-bundle-204862
- https://assetstore.unity.com/packages/3d/characters/unity-chan-model-18705
- Cartoon FX: https://assetstore.unity.com/packages/vfx/particles/cartoon-fx-free-109565
- Fantasy Arcade RPG Freedom World Sounds: https://assetstore.unity.com/packages/audio/music/fantasy-arcade-rpg-freedom-world-sounds-free-package-123530
- Fantasy Menu SFX: https://assetstore.unity.com/packages/audio/sound-fx/fantasy-menu-sfx-57238
- Sets - Gems: https://assetstore.unity.com/packages/3d/props/sets-gems-19902
---------------------------------
➤参考资料链接
- Finite State Machine - Wikipedia - https://en.wikipedia.org/wiki/Finite-state_machine
- Ensuring Data Integrity With hash Codes - Microsoft .NET Docs - https://docs.microsoft.com/en-us/dotnet/standard/security/ensuring-data-integrity-with-hash-codes
- InputAction - Input System Manual - Unity Documentation - https://docs.unity3d.com/Packages/com.unity.inputsystem@1.3/api/UnityEngine.InputSystem.InputAction.html
- Animator.CrossFade() - Unity Documentation - Scripting API - https://docs.unity3d.com/ScriptReference/Animator.CrossFade.html
- Animator.StringToHash() - Unity Documentation - Scripting API - https://docs.unity3d.com/ScriptReference/Animator.StringToHash.html
- Rigidbody.AddForce - Unity Documentation - Scripting API - https://docs.unity3d.com/ScriptReference/Rigidbody.AddForce.html
- Physics.OverlapSphereNonAlloc - Unity Documentation - Scripting API - https://docs.unity3d.com/ScriptReference/Physics.OverlapSphereNonAlloc.html
- Physics.OverlapSphere - Unity Documentation - Scripting API - https://docs.unity3d.com/ScriptReference/Physics.OverlapSphere.html
- Animation Curve - Unity Documentation - Manual - https://docs.unity3d.com/Manual/animeditor-AnimationCurves.html
- AnimationCurve.Evaluate - Unity Documentation - Scripting API - https://docs.unity3d.com/ScriptReference/AnimationCurve.Evaluate.html
- MonoBehaviour.OnGUI() - Unity Documentation - Scripting API - https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnGUI.html
- GUI.Label() - Unity Documentation - Scripting API - https://docs.unity3d.com/ScriptReference/GUI.Label.html
- 委托-Unity Learn - Delegates - Unity Learn - https://learn.unity.com/tutorial/delegates
---------------------------------
➤章节时间戳
00:00:00 教程简介
00:01:20 创建新项目
00:02:52 安装必须的官方插件
00:04:54 导入资源包
00:07:40 文件夹架构
00:09:27 什么是状态机
00:11:52 构建基础状态机
00:15:03 玩家状态机
00:18:41 常规方法实现状态切换
00:23:25 通过状态机实现状态切换
00:28:36 状态机模式的优缺点
00:31:59 更方便的管理和切换状态
00:35:39 设置输入动作
00:41:47 玩家输入类
00:46:13 玩家左右移动
00:51:52 改变玩家的朝向
00:56:27 玩家加速与减速
01:01:19 虚拟相机跟随玩家移动
01:06:05 动画播放优化
01:11:40 跳跃状态分析
01:15:07 地面检测器
01:21:22 检测动画是否播放完毕
01:23:27 玩家跳起状态
01:25:54 玩家掉落状态
01:30:16 玩家落地状态
01:32:51 空中移动
01:36:26 小跳
01:37:40 状态硬直
01:40:14 空中跳跃逻辑
01:41:16 空中跳跃状态
01:45:44 星星宝石
01:53:02 什么是土狼时间
01:54:49 土狼时间的实现
02:01:11 如何处理玩家预输入
02:03:06 输入缓冲的实现
02:05:09 使用OnGUI()来Debug
02:08:01 跳跃输入缓冲时间
02:10:32 跳跃输入优化总结
02:11:16 游戏声音分类
02:14:56 音效播放器
02:20:23 语音播放器
02:23:03 简单的背景音乐播放
02:23:55 委托的使用
02:29:53 事件频道
02:31:16 创建事件频道
02:33:39 使用事件频道
02:35:58 胜利宝石
02:37:39 通关画面
02:40:48 准备画面
02:46:43 玩家失败状态
02:54:05 玩家漂浮状态
02:59:20 失败画面
03:08:02 玩家胜利状态
03:11:21 状态驱动虚拟相机
03:15:03 通关计时器
03:21:18 带参数的事件频道
03:28:46 继续打磨
03:32:22 制作更多的关卡
03:33:12 再见
---------------------------------
#unity
#indiegame
#gamedev
Other Videos By RYanIndieDev
2022-10-09 | 【塞尔达传说:旷野之息】游戏实况 14 |
2022-10-08 | 【塞尔达传说:旷野之息】游戏实况 13 |
2022-10-07 | 【塞尔达传说:旷野之息】游戏实况 12 |
2022-10-06 | 【塞尔达传说:旷野之息】游戏实况 11 |
2022-10-05 | 【塞尔达传说:旷野之息】游戏实况 10 |
2022-10-04 | 【塞尔达传说:旷野之息】游戏实况 09 |
2022-10-03 | 【塞尔达传说:旷野之息】游戏实况 08 |
2022-10-02 | 【塞尔达传说:旷野之息】游戏实况 07 |
2022-10-01 | 【塞尔达传说:旷野之息】游戏实况 06 |
2022-09-30 | 【塞尔达传说:旷野之息】游戏实况 05 |
2022-09-30 | [Unity] 平台跳跃游戏 角色控制器 教程合集 | 如何制作平台跳跃游戏 | 做一个超级马里奥那样的游戏 | 状态机架构 | 虚拟相机 | 输入系统 |
2022-09-29 | 【塞尔达传说:旷野之息】游戏实况 04 |
2022-09-28 | 【塞尔达传说:旷野之息】游戏实况 03 |
2022-09-27 | 【塞尔达传说:旷野之息】游戏实况 02 |
2022-09-26 | 【塞尔达传说:旷野之息】游戏实况 01 |
2022-09-26 | 【艾尔登法环】一周目实况【Ep.52】史诗终结 |
2022-09-25 | 【艾尔登法环】一周目实况【Ep.51】灰烬王城 |
2022-09-24 | 【艾尔登法环】一周目实况【Ep.50】命定之死 |
2022-09-23 | 【艾尔登法环】一周目实况【Ep.49】天空之城法姆·亚兹拉 |
2022-09-22 | 【艾尔登法环】一周目实况【Ep.48】灰灭之火 |
2022-09-22 | [Unity] 平台游戏控制器 教程 Ep.10.3 Part.8 再见 | Goodbye |