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

AI摘要

本文介绍了Unity游戏开发的基础步骤,包括开发环境设置(Unity2022.3.3LTS和VisualStudio),项目创建(场景、窗口介绍、2D地图和角色制作),以及怪物AI、摄像机控制和UI功能的实现。适合初学者全面了解游戏开发流程。

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

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

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

一,学前准备🐟

(一)开发环境配置

1、游戏引擎:Unity 2022.3.3LTS

2、代码编辑器:Visual Studio 2022

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

(二)项目创建

界面布局设置路径: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游玩。同时可以检测是否实现我们的需求。

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

Unity2D独立游戏开发实战:从零复刻《吸血鬼幸存者》核心玩法 在游戏开发领域,2D动作游戏因其直观的玩法和相对较低的制作门槛,成为许多独立开发者和初学者的首选。其核心原理通常围绕玩家控制、敌人行为、战斗反馈和成长系统展开,通过精密的模块化设计构建出令人沉浸的游戏循环。这类游戏的技术价值在于,它能够以较小的资源投入,验证核心玩法的可行性与趣味性,是学习游戏系统架构和实时交互逻辑的绝佳实践。在应用场景上,从经典的横版过关到近年流行的Roguelike割草游戏,都广泛应用了这些基础技术框架。本文以热门游戏《吸血鬼幸存者》为蓝本,深入剖析其让人“停不下来”的“心流”循环设计, 阅读详情

相关推荐

[Unity2D入门教程]简单制作仿植物大战僵尸游戏之②搭建游戏场景+制作动画

布置场景: 我们首先要创建一个新场景就叫level1, 我们在project面板中找到这张图 我们在新建的Canvas上创建一张background把这张拖进去点击Set Native Size 然后改变一下canvas 改变点还挺多的首先render mode是根据摄像机的World space,order in layer调低点保证是最底层然后坐标得是整数 最主要的是它的Scale,我们要让它的Canvas和摄像机完全吻合,但canvas本身大小非常大,因此需要计算缩小倍数这里有个...

dangoxiba的博客 2071

Unity学习笔记(五)2D游戏制作入门

跟随UnityLearn上的一个教程,做一个简单但完整的2D游戏,过程包括:创建主角、世界、敌人和伤害区域、可收集物、飞弹、NPC,以及创建丰富游戏的其他系统包括:物理系统、动画、摄像机、粒子系统、UI、音频、对话,最后构建可执行的游戏。

xubufanzhou的博客 1万+

UNITY 2D像素类/横板/战斗游戏制作笔记

课程:《勇士传说》入门到进阶笔记

m0_57345722的博客 2195

Unity之创建第一个2D游戏项目

Unity之创建第一个项目

qq_29848853的博客 6444

【用unity实现100个游戏之15】开发一个类保卫萝卜的Unity2D塔防游戏3(附项目源码)

本期紧接着上一篇,主要内容主要是实现不同炮塔、攻击行为逻辑和伤害飘字效果。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1951

【用unity实现100个游戏之17】从零开始制作一个类幸存者肉鸽(Roguelike)游戏6(附项目源码)

本节紧跟着上一篇,主要实现不同游戏界面和不同角色选择。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1719

ML-Agents与训练达不到目的AI的斗争史-如何用unity训练一个类吸血鬼幸存者自动躲避AI(探讨,暂时非成功经验)1.0

应该抓住问题的根源解决:类吸血鬼幸存者游戏的躲避的目的是使血量维持一个健康值,所以我的逻辑是对训练的AI所有奖励(AddRewards)进行与血量是否健康一个强关联,简而言之是不管怎么加奖励都会乘以一个血量当前的百分比,只要当前血量降低,就会减少全局的奖励,但类吸血鬼幸存者游戏有回血机制,所以我们也要在训练AI原型时简单加入,简化加血的机制,每当一定时间后如果血量还是大于0就加血10-30随机(符合rouguelike游戏回血本质),间接增加全局的奖励和存活时间。结果训练中未出,结果和代码调整后续更新。

m0_62920747的博客 1010

Unity2D 游戏开发从零到一:使用C#打造完美示例模板

至此,我们已经探讨了Unity2D游戏开发的基础知识,并提供了一个C#示例模板,帮助你从零开始创建一个完整的2D游戏。Unity是目前世界上最流行的游戏引擎之一,它支持从简单的2D游戏到复杂的3D游戏的制作。与3D游戏相比,2D游戏的图形通常更为简单,但它们的开发过程也有自己的特点和挑战。这个脚本的功能是读取玩家的输入(键盘的方向键或W, A, S, D键),并根据输入的方向移动角色。然后,创建一个新的C#脚本,命名为。为角色添加这个脚本,并设置子弹预设和发射点(一个小的空物体,位于角色的前方)。

qq_38334677的博客 1136

Unity 2D 游戏开发教程(一)

在这一章中,我们了解了使用预制游戏引擎比自己编写游戏引擎有很多优势。我们谈到了几个有趣的游戏引擎,以及它们对整个游戏开发的影响。我们还概述了 Unity 提供的具体优势,并提到了一些使用 Unity 引擎开发的更知名的游戏。也许很快有一天,有人会提到你的游戏,说它是用 Unity 制作的最著名的游戏之一!本章介绍 Unity 编辑器——安装、配置、导航其窗口、使用其工具集以及熟悉项目结构。

龙哥盟 7152

Save The Vampire 拯救吸血鬼 - Unity建造吸血鬼城堡逃脱游戏项目源码C#

Save The Vampire 拯救吸血鬼 - Unity建造吸血鬼城堡逃脱游戏项目源码C# 支持Unity版本2019.427f1及以上 概述 拯救吸血鬼是一款大胆的游戏,你以疯狂的速度在城堡的路径上奔跑,通过选择路径图案来建造最大的城堡路径来拯救吸血鬼,你可以通过点击图案来改变图案的风格,建造最大的路径来拯救吸血鬼。拯救吸血鬼的生命并在这个现实世界的道路建设挑战中完成许多关卡 在路径图案末端结束时要格外小心。 修建路线: 在现实世界的路径构建游戏中运行: 选择适当的路径模式以获得良好的分数。 控制吸血鬼的速度来完成很多关卡 放飞心情,达到疯狂的速度 定制你的吸血鬼,赋予他们你自己的风格 购买并解锁所有吸血鬼风格 升级和购买电源: 购买电源以利用最大功能 利用这些功能来获得更高的分数。 特征 声音特效 用户界面画布 玩家和障碍物动画 包括触摸输入 功能齐全的游戏场景 可定制的 Unity 粒子效果 用于广告实施的广告经理 在应用程序内购买 内置带有脚本和逻辑的商店。 多种材质、纹理、3D 对象等。 支持平台:安卓、IOS 要求 Unity 版本 2019.427f1 及更高版本 适

Unity类幸存者完整游戏项目源码 Survivor.IO v1.0

Unity类幸存者完整游戏项目源码 作为一名拥有无限潜力的人类战士,你和其他幸存者将不得不拿起你的武器,与这些邪恶而危险的僵尸战斗! ► 易于重新换肤 ► 统一广告 ► Admob ► Facebook 受众网络 ► 跨平台(Android 和 iOS) ► 奖励视频 ► 文档文件 特征 热门游戏第一名 通过视频奖励广告赚取免费金币 集成 Unity、Admob 广告和粉丝

Unity实现2D小游戏Sunny Land

Unity实现2D小游戏FirstGame2D(Sunny Land) 一、游戏说明 本游戏为作者的第一个实验的2D小游戏 实现效果: (1)简单的UI界面以及触发按钮、滑动按钮事件 (2)通过按钮与按键实现场景的切换 (3)通过代码实现动画效果的切换(跳跃、蹲下等) (4)碰撞体以及触发器实现消灭敌人、收集物品、地面检测 (5)相机场景与背景运动差,实现场景与人物的立体效果,达到较好的视觉效果 (6)SoundMananger实现场景音乐的管理

加载中....... 6792

基于openwrt平台搭建局域网技术验证之四

1、测试目的 验证l2tp客户端模式的可行性。 提供vpn-l2tp模式的客户端功能。 2、参考资料 参考链接1:https://www.lucktang.com/191.html 3、测试过程 测试过程需要用到的资源: 路由器俩个 win7系统电脑俩台 ③ 交换机一个 ④ 网线三根 测试组网如下图所示: 组网说明: R0公司路由器 S1 交换机 R1 路由器1 R2 路由器2 PC1 个人电脑1 PC2 个人电脑2 (R0) lan口接(S1)...

caofengtao1314的专栏 1961

unity2d小游戏

该游戏使用unity2d模板,通过简单入门级编程语言完成😁。

m0_61490399的博客 1090

37张图详解MAC地址、以太网、二层转发、VLAN

MAC 地址 每个网卡或三层网口都有一个 MAC 地址, MAC 地址是烧录到硬件上,因此也称为硬件地址。MAC 地址作为数据链路设备的地址标识符,需要保证网络中的每个 MAC 地址都是唯一的,才能正确识别到数据链路上的设备。 MAC 地址由 6 个字节组成。前 3 个字节表示厂商识别码,每个网卡厂商都有特定唯一的识别数字。后 3 个字节由厂商给每个网卡进行分配。厂商可以保证生产出来的网卡不会有相同 MAC 地址的网卡。 现在可以通过软件修改 MAC 地址,虚拟机使用物理机网卡的 MAC 地址,并不能保.

networktp的博客 4745

SAE J1850协议:从波形解析到汽车诊断实战

本文深入解析SAE J1850协议在汽车诊断中的应用,重点对比其PWM和VPW两种实现方式的波形特征、帧结构及诊断要点。通过实测案例,详细介绍了如何通过波形分析精准定位通用和福特等美系车型的通信故障,提升汽车电子诊断实战能力。

hill8的博客 966

UNITY—2D游戏制作入门!

作为初学者的我们,虽然无法直接做出完成度那么高的作品,但每一个伟大的目标,都有一个微不足道的开始。其实,的确是可以只使用一个碰撞器的,但是在之后角色移动的部分,只有一个碰撞器会有许多不方便的地方,在Unity自己的资源商店中,提供了大量的优质素材供我们选择,你可以选择自己喜欢的素材。找到自己喜欢的素材之后,点击下载,然后把所选的素材Import到我们的项目当中。我们打开刚才导入的素材,找到一张主角站立的图片,作为我们主角最初始的样子。因为这是我们第一个2D游戏,所以我们使用的是一些简单的免费素材。

爱编程的鱼的博客 7400

移动支付APP(仿支付宝)

Toast.makeText(PayActivity.this, "支付失败:" + payResponse.getMsg(), Toast.LENGTH_SHORT).show();Toast.makeText(PayActivity.this, "支付失败:" + t.getMessage(), Toast.LENGTH_SHORT).show();Toast.makeText(PayActivity.this, "支付失败", Toast.LENGTH_SHORT).show();

寒寒豆豆软件公司的博客 136

Unity——2D小游戏笔记整理

【每日一句:清晨和夜晚都请用尽全力去生活】1.瓦片地图Tilemaps创建 2DObject——>Tilemap——>Rectangular瓦片集 Sprite Mode从Single改为MultiplePixel Per Unit值从100更改为642.添加瓦片地图碰撞:组件选择的瓦片不再被视为碰撞体:在Inspector找到Collider Type属性,Sprite更改为None优化瓦片地图碰撞体组件,会自动添加Rigidbody2D,在Tilemap Collider2D,

m0_63330263的博客 2143

新鲜出炉,ECCV2024.9.25 首次提出基于 YOLO 目标检测的无源域自适应

本文提出了首次使用YOLO系列单发探测器的SFDA方法。本文方法采用了一个带有学习的、目标领域特定的增强和一种新的通信机制的师生框架来稳定训练,减少了对模型选择中带注释的目标数据的依赖,这对现实世界的应用至关重要。SF-YOLO 优于所有基于Faster R-CNN的SFDA方法,甚至一些使用源数据的基于UDA yolo的方法。

m0_63294504的博客 2676

开关电源和线性电源Multisim电路仿真实验汇总——硬件工程师笔记

本文系统介绍了稳压电源的基础知识与应用实验。首先阐述了稳压电源的定义与类型,包括线性稳压电源(如LM7805/7905)和开关稳压电源(降压/升压/升降压式)的工作原理、参数特点及优劣势。随后详细讲解了各类稳压电源的实验设计,如线性稳压电源的电路实现、开关稳压电源的PWM控制方法等。最后汇总了硬件工程师相关的笔试面试资源,涵盖器件知识、电路仿真、企业真题等内容。全文结合理论分析与Multisim仿真,为电子工程学习者提供了稳压电源的实用技术参考。

XU157303764的博客 1640

Unity学习笔记第二章:如何创建一个2D游戏

如何创建一个2D游戏-需要注意的地方

Yuanyu1028的博客 4252

【异常】OpenClaw提示Message ordering conflict - please try again. If this persists, use /new to start a fr

摘要:OpenClaw助手出现"Message ordering conflict"异常时,表明会话消息排序冲突,主要由消息队列时序错乱、会话同步异常或上下文过载引起。解决方案包括:1)基础重试暂停后单发指令;2)最优方案是发送/new重置会话;3)极端情况下需重启客户端或检查指令格式。预防建议包括避免高频并发指令、定期重置会话及确保网络稳定。该报错属业务层异常,不影响账号安全。

奶爸的编程之路,也就一周冷个三天 424

Unity开发2d游戏全套教程[入门案例]

Unity开发2d游戏全套教程[入门案例]

weixin_45565886的博客 6038

Android15音频进阶之解underrun与overrun思路(一百一十七)

本篇目的:Android15音频进阶之解underrun与overrun思路Underrun:发生在播放:APP准备的数据太少,导致底层没有音频数据可以播放,导致ADSP被“饿死了“,即Underrun。Overrun: 发声在录音:APP录音数据获取太慢了,导致底层录出来的数据太多了,APP播放不了,导致APP被“撑死了”,即Overrun。

Android系统攻城狮 2106

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Unity2D游戏制作入门 | 04

这节我们了解一些基本组件,如Rigbody2D,Collider组件,更重要的话还是看Unity的学习手册(在下面的补充内容中)。通过添加组件,让物体更具物理特性,并为之后的物理交互打基础。这就是组件的核心功能这节还是比较简单的,简单看看或是复习快速过就行。

widhejd393的博客 1147

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: 疯狂的小球
下一篇: Unity美术资源导入教程
无名丨小子
博客等级 码龄6年 204粉丝 9原创
评论 11
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值