2D-类吸血鬼幸存者-图文开发教程

发布时间:2024年01月09日

📫此文档的功能是帮助同学们

了解游戏开发流程对游戏开发各模块有简单的认知体验式学习

希望大家在这里更好地学习知识、提升自我

一,学前准备🐟

(一)开发环境配置

1、游戏引擎:Unity 2022.3.3LTS

2、代码编辑器:Visual Studio 2022

3、软件安装教程:Unity和visual Studio软件安装教程-CSDN博客

(二)项目创建

界面布局设置路径:window-->layouts-->2by3

?(三)美术资源导入

二、Unity界面介绍

(一)场景编辑窗口(Scene)

我们可以向Scene窗口中添加各种游戏素材以丰富场景的内容。如果我们想在游戏场景中应用我们自己提前准备的素材,则需要从 Project--Assets 窗口中将这些素材拖曳到 Scene 窗口或者Hierarchy窗口中,并且可以通过单击 Unity 3D 窗左上角的按钮,或按 [Q]键、[W] 键、[E] 键、[R] 键对平移工具、变换工具、旋转工具、缩放工具进行选择,分别对 Scene 窗口画面显示的位置和游戏素材在场景中的位置、旋转角度、缩放比例进行调整。

(二)游戏预览窗口(Game)

此窗口的功能为显示游戏运行后的效果。当我们需要测试游戏的新功能时,可以通过单击 Unity 3D 窗口上方的按钮运行游戏,此时Unity 3D 显示的画面会自动切换到 Game 窗口,开发者可在该窗口中查看新功能的实际运行效果

(三)场景物体列表窗口(Hierarchy)

此窗口包含当前场景中所有游戏物体的列表。其中某些游戏物体是独立的物体,而某些则是预制体 (Prefab)。任何新建或者删除物体的操作都会在层级窗口中反映出来。默认情况下,层级窗口中的顺序是物体被创建的顺序,但是这个顺序是可以任意改变的,只需要通过拖曳操作即可实现。层级窗口可以表示物体的父子 (Parent 和 Child) 关系,这也是层级窗口名称的由来。

(四)对象属性编辑列表窗口(Inspector)

Unity 的场景通常是由很多 GameObject 组成的,每个 GameObject 可能包含脚本、声音、模型等多个组件。检视窗口显示了当前选中物体的细节信息,包括 GameObject 所挂载的所有组件,而且还能在检视窗口中修改这些信息。

(五)项目资源管理窗口(Project)

此窗口的功能是存储游戏开发中会用到的模型、UI、动画、音效、脚本、预制体等等资源。我们从 Unity 商店下载的素材都会在Project 窗口中显示。开发者进入创建的 Unity 3D 工程文件后,可在 Unity3D 的菜单栏中执行[Window>Asset Store] 命令进入 Unity 商店。

三、 2D游戏场景与角色制作

(一)2D地图制作(2D Tilemap)

?1、在Hierarchy面板,右键点击2D Object-->Tilemap-->rectangular创建一个瓦片地图编辑器

??

?2、选中Tilemap然后点击Open Tile Palette,打开瓦片调色

3、在Tile Palette中,选择方形绘制,然后选择地图样式,然后在场景中框选绘制自己想要的地图(白色的框是摄像机视角,所以最好绘制的地图,超过摄像机视角)

(二)角色制作(角色控制)

1、打开文件夹路径:Undead Survivor-->Sprites-->Farmer 1-->Stand 0,选中Stand 0拖入Hierarchy面板空白处中,然后重命名为Player

2、选中Assets文件夹,右键-->Create-->Folder,创建一个文件夹,命名为Survivor,然后选择Survivor文件夹,右键-->Create-->Folder,创建一个文件夹,命名为Scripts。

3、选中Scripts文件夹,右键-->Create-->C# Script,创建一个C#脚本,命名为Bullet。按照此方式以此创建Enemy、GameManager、HUD、Player、Scaner、Spawner、Weapon等C#脚本。如下图所示:

4、选中Hierarchy面板里的Player,然后在Inspector界面,点击Add Component,以此添加Animator、Box Collider 2D组件和Scaner、Player C#脚本;

5、按照要求编写Player脚本的代码

【在Unity中找到Edit->preferences->Extenal Tools->Extenal Script Editor改为Visual Studio 20**】

注意:(代码编写,一定要区分大小写,用英文输入法编写各种号!!!!代码写完一定要按Ctrl+S进行保存!!! C#脚本名要和class后的类名字一致!!!)

注:(零基础学生,可以不用考虑具体代码是什么意思,跟着实现即可)

6、给你的玩家添加一个动画控制器

7、播放游戏,并且用WASD控制Player,游玩。同时可以检测是否实现我们的需求

(三)摄像机(Cinemachine)

1、按以下路径安装Cinemachine:Window-->Package Manager-->Unity Registry

-->Cinemachine-2.9.7-->Install选择安装,等待安装!!!

2、创建virtual camera,然后按照下图调整virtual camera的参数和赋值。

3、播放游戏,并且用WASD控制Player,游玩。同时可以检测是否实现我们的需求

四、幸存者核心玩法实现

(一)怪物(怪物AI)

?1、打开Assets文件夹-->Undead Survivor-->Sprites-->Enemy-->Run 0,把Run 0拖入Hierarchy面板,重命名为Enemy。然后点击Enemy对象,在Inspector界面,点击Add Component依次添加Animator、Box Collider 2D、Rigidbody 2D组件和EnemyC#脚本。

?2、修改Enemy对象Sprite Renderer组件(Order in Layer:1)、Animator组件(Controller:ACEnemy 0)、Box Collider2D组件(Is Trigger:勾选√)和Rigidbody 2D组件(Gravity Scale:0)的属性。

?3、创建GameManager对象(在Hierarchy面板中鼠标右键选择Create Empty创建空物体,然后重命名为GameManager),并且挂载GameManager C#脚本。

??4、代码编写

注意:(代码编写,一定要区分大小写,用英文输入法编写各种号!!!!代码写完一定要按Ctrl+S进行保存!!! C#脚本名要和class后的类名字一致!!!)

(1)Enemy C#脚本代码

(2)GameManager C#脚本代码

5、给GameManager组件的Player变量赋值。

6、播放游戏,并且用WASD控制Player游玩。同时可以检测是否实现我们的需求。

?(二)刷怪逻辑

?1、在HIerarchy面板中,选中Player然后鼠标右键点击Create Empty,重复5次。然后分别重命名为Shadow、Hand Right、Hand Left、Spawer和weapon。然后选择spawer鼠标右键点击Create Empty,重复10次,然后重名为Point(0)、Point(1)、Point(2)······Point(9)

?2、在HIerarchy面板中,选中Shadow对象,然后添加Sprite Renderer组件,然后把Shadow赋值给Sprite Renderer组件的Sprite变量。Order in Layer改为1,Transform组件的Position的Y值改为-0.5

3、依次调整10个敌人刷新点位置

4、把Spawner C#脚本拖给Spawer对象,然后打开Spawner C#脚本,编写代码。

5、编写Spawner C#脚本(完整)

6、创建Enemy对象预制体(创建完预制体之后,Hierarchy面板的Enemy删除掉)

7、给Spawner脚本赋值

8、播放游戏,并且用WASD控制Player游玩。同时可以检测是否实现我们的需求。

(三)攻击、伤害与核心玩法规则?

1、创建子弹对象,并给其添加BulletC#脚本、Box Collider 2D(is Trigger:勾选)和Rigidbody 2D(Gravity Scale:0)组件,同时Sprite Renderer组件下的Order in Layer改为1。

2、添加Bullet和Enemy标签

3、添加Enemy层

4、给你Bullet打上Bullet的标签

5、给Bullet对象添加Bullet标签,然后把Bullet对象做成预制体,结束后,把Hierarchy下的Bullet删除掉。

6、给Enemy预制体添加Enemy标签和Enemy层级

7、打开GameManager C#脚本,进行代码编写(完整)

8、打开Bullet C#脚本,进行代码编写(完整)

9、打开Enemy C#脚本,进行代码编写(完整)

10、打开Player C#脚本,进行代码编写(完整)

11、打开Scaner C#脚本,进行代码编写(完整)

12、打开Weapon C#脚本,进行代码编写(完整)

13、给你Player玩家的Scaner脚本的Target Layer赋值Enemy,Player脚本的Scaner赋值Player。

14、把Weapon C#脚本拖拽挂载给Player的子物体Weapon,然后对Weapon赋值。

15、播放游戏,并且用WASD控制Player游玩。同时可以检测是否实现我们的需求。

(四)UI功能实现?

1、去demo场景复制粘贴拼好的UI面板到最初的场景

2、将HUD C#脚本挂载给UI Canvas

3、打开HUD C#脚本,进行代码编写(完整)

??

4、给UI Canvas的C#脚本的各个变量赋值(注意一一对应,不要弄错了)

??

5、播放游戏,并且用WASD控制Player游玩。同时可以检测是否实现我们的需求。

??此教程到此结束了,简单,详细,易使用!很适合新人学习,有问题可以评论区留言哈~

文章来源:https://blog.csdn.net/godofeight/article/details/135445896
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。