游戏开发的世界充满了创造与探索的乐趣,2D RPG(角色扮演游戏)是许多游戏开发者的梦想之一。如果你渴望从零开始构建一个有趣的RPG游戏,那么这个课程将是适合你的完美选择。在这篇博客文章中,我们将详细探讨如何使用Unity 6和C#来创建一个完整的2D RPG,包括战斗系统、敌人和各种游戏机制。

MP4 | 视频:h264、1920×1080 | 音频:AAC,44.1 KHz
语言:英语+中英文字幕(云桥网络 Ai翻译)| 时长:21 小时 26 分钟 含课程文件

学习目标

通过参加这个项目驱动的课程,你将收获以下知识和技能:

  • 从零开始学习C#:掌握一种在Unity中高效使用的编程语言。
  • Gain Experience in Unity 6:深入学习最新版本的Unity,这个版本于2024年末发布。
  • 设计、开发和部署完整的RPG项目:掌握开发游戏的全过程。
  • 使用预制件(Prefabs)实现各种武器和敌人:应用高级概念来丰富游戏元素。
  • 理解基础知识与更复杂的主题:在熟悉游戏开发的同时,扩展你的知识面。
  • 通过视觉和粒子效果增强游戏体验:让你的游戏更加生动。
  • 重构你的代码,提高质量:学会如何精简和优化代码结构。
  • 通过每一节课获得实践经验:通过动手实践深入理解理论。
  • 编写清晰且可扩展的C#代码:提升自身的编码能力。
  • 提升开发效率:掌握键盘快捷键和专家提示,快速提升你的开发效率。

课程需求

这个课程是为所有人设计的,即使你没有任何经验,依然可以参与进来。只需要一点热情和愿望,我们将一起开启这段游戏开发的旅程。

课程内容

1. Unity基础与项目设置

游戏开发的初期,掌握Unity的界面操作、场景设置、资源组织以及2D游戏开发的基础知识至关重要。课程将从这些基本要素入手,帮助你建立一个稳固的开发基础。

2. 玩家与战斗机制

你将学习如何实现玩家的流畅移动,并打造一套双武器系统,包括近战攻击(刀)和远程攻击(药水)。通过动态视觉轨迹的引入,你将为玩家的攻击增加更多的视觉冲击力。

3. 用户界面与健康系统集成

良好的用户界面(UI)是提升游戏体验的重要组成部分。在这一节中,我们将一起设计并集成一个互动的生命值条,帮助玩家更好地掌控他们的状态。

4. 敌人的行为与人工智能

丰富的敌人角色能够提升游戏的刺激感与挑战性。在这部分中,你将开发出多样的敌人角色,它们将拥有独特的精灵(Sprites)以及近战和远程攻击能力,从而为玩家带来更为丰富的对抗体验。

5. 美化你的游戏

在游戏开发的最后阶段,视觉效果起着至关重要的作用。我们将探讨如何应用动态光照和粒子系统等先进的视觉效果,提升你的游戏的专业感与观赏性,让它更具“游戏魅力”。Learn To Create A 2D Rpg In Unity 6

通过这个课程的学习,你不仅可以掌握2D RPG的构建技能,还能培养对游戏设计的敏感性和创造力。不论你是刚入门的初学者,还是希望提升技能的中级开发者,本课程都为你提供了明确且逐步的学习路径,帮助你从头到尾完成一个完整的游戏项目。

现在就加入我们,开始你的游戏开发旅程吧!与成千上万的开发者一起,创造出属于你自己的2D RPG游戏。

概述
第 1 部分:简介

讲座 1 下载 Unity 并集成 Visual Studio Code

第 2 讲 进口源项目

第 3 讲 如何充分利用课程

第 2 部分:Unity C# 基础知识

讲座 4 Unity C# 基础 – 简介

讲座 5 添加测试脚本

第 6 讲 函数

讲座 7 变量

第 8 讲 公立与私立

第 9 讲 条件句

讲座 10 Visual Studio Code 快捷键

第 11 讲 Unity C# 基础 – 结论

第 3 部分:设置项目

第 12 讲 设置项目 – 简介

第 13 讲 布局

讲座 14 导入图像

讲座 15 导入音频

第 16 讲 设置项目 – 结论

第四部分:球员移动

第 17 讲 球员移动 – 介绍

讲座 18 创建玩家游戏对象

第 19 讲 设置玩家输入

讲座 20 创建 PlayerMovement 脚本

讲座 21 捕获对 RigidBody2D 的引用

讲座 22 获取运动向量

讲座 23 使用 RigidBody2D 进行移动

讲座 24 Time.deltaTime

第 25 讲 球员移动 – 结论

第 5 部分:玩家动画

第 26 讲 播放器动画 – 简介

讲座 27 设置动画师

讲座 28 创建动画剪辑

讲座 29 播放动画

讲座 30 Flip SpriteRenderer

第 31 讲播放器动画 – 结论

第 6 部分:环境

讲座 32 环境 – 简介

课程 33 创建 Tilemap

讲座 34 绘制环境

讲义 35 添加碰撞

讲义 36 使用 SpriteAtlas

第 37 讲 环境 – 结论

第 7 部分:敌人预制件

讲座 38 敌人预制件 – 简介

讲座 39 创建敌人游戏对象

讲座 40 预制敌人

讲座 41 EnemyData ScriptableObject

讲座 42 填写 ScriptableObject 数据

讲座 43 选择一个随机敌人精灵

讲座 44 创建预制变体

讲座45 设置武器

讲座 46 更改武器 SpriteRenderer

讲座 47 获取玩家方向

讲座 48 实施停车距离

讲座 49 处理碰撞

讲座 50 敌人预制件 – 结论

第 8 节:代码重构:角色移动

讲座 51 代码重构:角色移动 – 简介

讲座 52 继承

讲座 53 变量保护

讲座 54 函数中的受保护、虚拟和覆盖

讲义 55 获取 RigidBody

讲座 56 摘要

讲义 57 覆盖 SetDirection

讲座 58 重构敌人停止距离

讲座 59 锁定敌人动向

讲座 60 代码重构:角色移动 – 结论

讲座 61 附加:为什么不直接编写好的代码?

第 9 部分:玩家基础武器

讲座 62 玩家基础武器 – 介绍

讲座 63 设置基础武器

讲座 64 动画

讲座 65 连接动画

讲座 66 触发动画

讲座 67 添加攻击输入

讲座 68 添加空闲动画事件

讲座 69 屏幕 VS 世界位置

讲座 70 计算朝向鼠标的角度

讲座 71 理解鼠标和玩家的位置

讲座72 翻转武器容器

讲座 73 玩家基础武器 – 结论

第 10 节:敌方基地武器

讲座 74 敌方基地武器 – 简介

讲座 75 设置动画师

讲座 76 创建 CharacterSelector 脚本

讲座 77 快速重构:基础武器

讲座 78 开始实现 CharacterSelector

讲座 79 为什么“如果”有时不是最好的选择

讲座 80 事件解决方案

讲座 81 调用事件

讲座 82 在字典中存储事件

讲义 83 使事件函数抽象化

讲座 84 敌人基地武器 – 结论

第 11 节:代码重构:字符翻转

讲座 85 代码重构:字符翻转 – 简介

讲座 86 敌人翻转

讲座87 为什么要重构以及如何重构?

讲义88 创建CharacterFlip类

讲座89 声明OnFlipped事件

讲座 90 相应翻转

讲座 91 MouseFollowerManager

讲座 92 移动MouseFollowerManager

讲座 93 代码重构:字符翻转 – 结论

第 12 部分:菜单

讲座 94 菜单 – 简介

讲座 95 创建和重命名场景

讲座 96 添加环境

讲座 97 Canvas 渲染模式

讲座 98 添加 UI 元素

讲座 99 Canvas UI 缩放模式

讲座 100 ChangeSceneButtonClick 脚本

讲座 101 添加背景

讲座 102 菜单 – 结论

第 13 部分:生命值栏 UI

讲座 103 健康酒吧 – 简介

讲座104 创建HealthBarCanvas

讲座 105 健康栏 UI

讲座 106 创建角色健康脚本

讲座 107 预制 HealthBarCanvas

讲座 108 健康酒吧 – 结论

第 14 节:击退

讲座 109 击退 – 简介

讲座 110 碰撞与触发器简介

讲座 111 对撞机类型

讲座 112 对撞机类型交互

讲座 113 触发器

讲座 114 检测与敌人的碰撞

讲座 115 理解击退逻辑

讲座 116 设置击退

讲座 117 击退正确的 RigidBody

讲座 118 被击退时避免移动

讲座 119 敌人击退

讲座 120 如果不攻击则禁用玩家基础武器碰撞器

讲座 121 击退 – 结论

第 15 节:代码重构:Knockback

讲座 122 代码重构:Knockback – 简介

讲座 123 玩家基础武器 VS 敌人基础武器

讲座 124 修复 BoxCollider

讲座 125 创建 CharacterCollision 脚本

讲座 126 添加图层

讲座 127 快速代码重构:初始化武器

讲座 128 代码重构:Knockback – 结论

第 16 节:卫生系统

讲座 129 卫生系统 – 简介

讲座 130 使 CharacterHealth 成为 CharacterCollision 的一个实例

讲座 131 更新当前健康

讲座 132 界面基础

讲座133 创建IDeath接口

讲座 134 实现接口

讲座 135 接口与抽象类

讲座 136 静态变量

讲座 137 卫生系统 – 结论

第 17 节:StateCanvas 和 GameManager

讲座 138 StateCanvas 和 GameManager – 简介

讲座 139 设置 StateCanvas 预制件

讲座 140 UI 容器

讲座 141 创建不同状态的画布

讲座 142 创建 GameManager 脚本

讲座 143 为什么要使其通用?

讲144 使其通用

讲座 145 显示 StateCanvas

讲座 146 ChangeState

讲座 147 StateCanvas 和 GameManager – 结论

第 18 节:射手敌人

讲座 148 射手敌人 – 简介

讲座 149 创建攻击射击武器动画

讲座 150 AttackAnimationEvent

讲座 151 设置射弹预制件

讲座 152 Unity 中对象排序的“最佳”方法

讲座 153 实例化射弹预制件

讲座 154 将射弹移向玩家

讲座 155 这种逻辑的问题

讲座 156 碰撞障碍物时销毁抛射物

讲座 157 射手敌人 – 结论

第 19 节:抛射物

讲座 158 抛射物 – 简介

讲座 159 创建 ProjectileData ScriptableObject

讲座 160 随机化射弹精灵

讲座 161 开始检测与玩家的碰撞

讲座 162 解决敌人互相射击的问题

讲座 163 第二种选择和快速代码重构

讲座 164 抛射物 – 结论

第 20 节:玩家射击武器

讲座 165 玩家射击武器 – 简介

讲座 166 InventoryCanvas

讲座 167 WeaponButton 脚本

讲座 168 为玩家添加射击武器

讲座169 更新武器

讲座 170 快速修复

讲 171 添加十字线

讲座 172 快速代码重构和 Canvas 排序顺序修复

讲座 173 Canvas 与 SpriteRenderer

讲座 174 玩家射击武器 – 结论

第 21 节:游戏精华:玩家摄像头

讲座 175 Game Juice:玩家相机 – 简介

讲座 176 安装 Cinemachine

讲座 177 Cinemachine 简介

讲座 178 Cinemachine 关注

讲座 179 修复 Cinemachine 更新模式

讲座 180 为 WeaponsContainer 添加 Lerp

讲座 181 Game Juice:玩家相机 – 结论

第 22 节:自定义武器伤害

讲座 182 自定义武器伤害 – 简介

讲座 183 WeaponData ScriptableObject

讲座 184 从 ScriptableObject 访问 Damage

讲座 185 自定义武器伤害 – 结论 + 说明

第 23 节:IDestroyable 接口

讲座 186 IDestroyable 接口 – 简介

讲座 187 为什么要使用其他界面?

讲座 188 这些实施中的问题 + 解决方案

讲座 189 快速重构 damage.GetWeaponData()

讲座 190 IDestroyable 接口 – 结论

第 24 节:游戏果汁:弹丸轨迹

讲座 191 Game Juice:射弹轨迹 – 简介

讲座 192 什么是游戏汁以及如何添加它?

讲座 193 添加 TrailRenderer 组件

讲义 194 固定抛射体运动

讲座 195 创建射弹主色

讲座 196 使用投射物主色

讲座 197 Game Juice:射弹轨迹 – 结论

第 25 节:Game Juice:射弹动画

讲座 198 Game Juice:射弹动画 – 简介

讲座 199 旋转抛射体

讲座 200 创建生成和销毁动画

讲座 201 微调抛射物动画

讲座 202 在生成时使用射击武器移动

讲座 203 添加加速度

讲座 204 销毁动画

讲座 205 以自定义方式销毁射弹

讲座 206 管理射弹最后位置以修复破坏动画错误

讲座 207 Game Juice:射弹动画 – 结论

第 26 节:游戏果汁:爆炸粒子

讲座 208 Game Juice:爆炸粒子 – 简介

讲座 209 设置爆炸粒子

讲座 210 创建 ExplosionManager

讲座 211 修改粒子颜色

讲座 212 使用粒子颜色

讲座 213 Game Juice:爆炸粒子 – 结论

第 27 节:Game Juice:基础武器踪迹

讲座 214 Game Juice:基础武器轨迹 – 简介

讲座 215 创建 TrailRenderer

讲座 216 Game Juice:基础武器踪迹 – 结论

第 28 节:游戏精华:照明

讲座 217 Game Juice:照明 – 简介

讲座 218 基础武器灯

讲座 219 射击武器灯

讲座 220 修改射击武器灯光颜色

讲座 221 添加视觉效果

讲座 222 Game Juice:照明 – 结论

第 29 节:Game Juice:角色翻转 Lerp

讲座 223 Game Juice:角色翻转 Lerp – 简介

讲座 224 设置协程

讲座 225 添加 Lerp 逻辑

讲座 226 仅对特定对象进行 Lerp + 代码重构

讲座 227 Lerp MouseFollowerManager

讲座 228 Game Juice:角色翻转 Lerp – 结论

第 30 节:游戏果汁:角色闪光

讲座 229 Game Juice:角色 Flash – 简介

讲座 230 设置 FlashRoutine

讲座 231 FlashMaterial

讲座 232 改变材料

讲座 233 Game Juice:角色闪现 – 结论

第 31 节:Game Juice:场景转换

讲座 234 Game Juice:场景转换 – 简介

讲座 235 创建画布

讲座 236 设置动画

讲座 237 经理与单身人士

讲座 238 使用动画

讲座 239 修复小问题

讲座 240 处理退出时间

讲座 241 避免在淡入淡出时点击按钮

讲座 242 Game Juice:场景转换 – 结论

第 32 节:音频

讲座 243 音频 – 简介

讲座 244 创建 AudioManager 脚本

讲座 245 播放音频

讲座 246 播放音乐

讲座 247 音频 – 结论

第 33 节:最后的润色和窗户的建造

讲座 248 最后的润色和窗户的建造 – 简介

讲座 249 StateCanvas UI 动画

讲座 250 修复敌人静态变量

讲座 251 添加 EnemyAnimationTimeRandomizer

讲座 252 删除视野之外的射弹

讲座 253 为 Windows 构建

讲座 254 最后的润色和窗户的建造——结论

第 34 节:结论

第 255 讲结论!

发表回复

后才能评论