Unity-2D游戏开发套件指南-免费资源

本文详细介绍了使用Unity的2D游戏开发套件创建2D游戏的过程,包括场景设置、关卡设计、移动平台、事件驱动的门开启、敌人角色和伤害系统,同时还提及了与Android开发和面试相关的进阶知识点。
摘要由CSDN通过智能技术生成

传送玩家

示例


今年年初,Unity Brighton的内容团队推出了他们的最新作品-2D游戏开发套件,该套件适用于任何希望学习在Unity中创作2D游戏的人,在不编写任何代码的情况下使用2D游戏开发套件,通过设置与拖放便能快捷的实现你的游戏创意。

本文将通过2D游戏开发套件中的游戏示例项目,来带领大家走进2D游戏开发的世界。游戏内容是,我们的首席工程Ellen的飞船坠落在一个古老神秘的外星星球,他必须避免危险,并且击败潜伏在这个异域文明古遗址中敌人。

项目介绍

我们将分享使用2D游戏开发套件创建场景、绘制及测试关卡、添加移动平台、触发开门动作、游戏中的敌人、摧毁对象、传送玩家。

你可以访问Asset Store资源商店下载2D游戏开发套件:

https://assetstore.unity.com/packages/essentials/tutorial-projects/2d-game-kit-107098

创建新场景

本项目包含一个实用程序来自动创建一个新的默认场景。这个场景将包含我们英雄Ellen、一个小平台、生命值UI以及完整的移动、攻击所需要的元素。

首先让我们来创建一个新的场景。从顶部菜单选择“Kit Tools(套件工具)“,选择 “Create New Scene(创建新场景)”。

将会出现一个新的窗口,在“New Scene Name(新场景名称)”中,输入你希望的新场景的名称,点击“Create(创建)”。

这样会在Project窗口的根目录创建一个新场景,然后自动添加到Build Settings中。

我们刚刚创建好的场景在会在编辑器中自动打开,现在我们可以开始正式使用它进行开发了。

绘制关卡

2D游戏开发套件使用了Unity中的Tilemap功能,旨在帮助开发者轻松快速的绘制关卡,该开发套件已经设置好了一切,可以直接使用。

让我们来设计一个关卡。在顶部菜单中,点击Window > Tile Palette(窗口>瓦片调色板)。

Tile Palette(瓦片调色板)窗口如下图所示。

我们已经创建好二个瓦片集(Tileset)用于绘制关卡。这些瓦片使用了Unity的Tilemap功能中的可编程脚本瓦片(Scriptable Tile)系统。它们会自动为平台选取正确的精灵。我们在这里有二种风格的精灵:一种是铺了草皮的石头,另一种是异形建筑结构。

我们需要确保在Tile Palette瓦片调色板中选取了正确的瓦片集。

  • 点击Tileset Menu(瓦片集菜单)

  • 点击Tileset_Gamekit(瓦片集开发套件)

  • 为关卡选取想要的瓦片类型

现在我们可以在场景中绘制瓦片来创建关卡。

  • 点击选取Tile Palette (瓦片调色板)上的瓦片

  • 把鼠标移到场景视图中

  • 点击并拖拽左键来绘制关卡

  • 在Tile Palette上点击想要的瓦片来选中它

如果你不小心画错了,可以按住Shift并单击或拖拽左键来清除错误的瓦片。

测试关卡

现在我们已经创建好了关卡,现在运行测试了。按下编辑器顶部Play运行按钮。

我们的玩家角色Ellen控制如下。

移动:A, D

跳跃:Space

蹲伏:S

射击:O

格斗:K

激活:E

穿越平台:S 和 Space

我们加入了调试菜单。按下键盘F12弹出选项,可以启用或禁用游戏视图中Ellen的各种武器。

添加移动平台

在场景视图中操作游戏对象前,请确保未处于绘图模式。所以我们要关闭Tile Palette瓦片调色板,或者选择编辑器左上角的移动工具,你也可以按下W,选取移动工具。

现在让我们将移动平台加入关卡中。

进入项目窗口,打开Prefabs > Interactables,右键单击并将MovingPlatform拖放到场景视图中,确保在层级窗口中选择了MovingPlatform,按下W使用移动工具,在MovingPlatform上使用移动工具将它放到想要的位置。

当你选择MovingPlatform时,会出现一条红色虚线,在虚线尾部还有一个红色箭头。这个箭头表示游戏运行时该平台的移动路径。

使用红色虚线尾部的红色箭头来设置平台的移动路径。

如果想要预览MovingPlatform的移动路径,可以选择MovingPlatform。你可以查看检视窗口,在Moving Platform(移动平台)组件中,找到Preview Position(预览位置)滑块,点击并拖拽来移动滑块,查看MovingPlatform会怎么移动。

现在我们要让平台以矩形为移动路径循环移动,使它的路径略为复杂。我们通过添加节点(Node)可以实现这个功能。

对Moving Platform组件来说,节点是额外的导航点。

在检视窗口中找到Moving Platform组件,点击二次Add Node(增加节点)。

这样会添加二条额外的红色虚线和图示。使用图示来将你的额外节点组成矩形。

你会注意到,目前没有路径将最后的节点和开始的节点连接在一起。如果我们按下Play运行,它会停在最后一个点上,在路径上往回移动,然后周而复始。

你可以修改平台设置,使之形成循环。在Moving Platform组件上,找到Looping(循环)选项,点开写有BACK_FORTH的下拉列表,选择Loop循环。

这样会在图示中形成循环,而平台则会使用这个路径。

注意:预览滑块无法预览完整的循环,所以你需要点击Play运行来查看其实际效果。

使用事件触发开门动作

在2D游戏开发套件中,事件(Event)能够创建动作。我们会使用事件功能来完成玩家踩到压力板时触发开门的动作。

首先添加一个门。在项目窗口中,打开Prefabs > Interactables。找到Door预制件,将其拖入场景视图中。将它放在阻挡玩家移动的位置。

现在我们在场景中添加压力板。在项目窗口中,打开Prefabs > Interactables,找到PressurePad预制件,将其拖到门前的地上。

注意:如果玩家被压力板阻挡而不能踩上去,请把压力板的位置降低一些。玩家很容易被碰撞体卡住。

这里面一些事件已经预先定义好了。例如:当踏上压力板时,PressurePad游戏对象会播放音效并发出亮光。

现在我们把PressurePad和Door连接起来。

  • 在层级窗口中,选中PressurePad

  • 在检视窗口中,找到Pressure Pad(压力板)组件

  • 在On Pressed列表中,点击右下方的+号,添加新事件

  • 将Door游戏对象从层级窗口拖到事件属性中的None(Object)字段

  • 在No Function下拉列表中,找到Animator > Play(string)

在下拉列表下的文本区,输入文本DoorOpening。

点击Play运行,使用移动按键(A或D)让角色在压力板上移动。门应该会被触发的事件打开!

所有动画片段(Animation Clips)都存在项目窗口的Art > Animations > Animation Clips文件夹中。如果想要在同一事件中播放不同的动画,你必须正确匹配动画片段的名字(即字符串)。

如果你想通过射击开关来开门,而不是放置压力板,你可以通过相同步骤实现,但要选择Prefabs文件夹中的ResusableSwitch预制件

敌人

2D游戏开发套件中有二个预制的敌人:Chomper和Spitter。 你可以在项目窗口的Prefabs> Enemies中找到它们。

它们都由检视窗口中的Enemy Behaviour(敌人行为)组件控制。你可以使用这个组件调整一些属性,例如:敌人的速度、视野(FOV)、血量等。每个敌人都带有相同的组件,但它们的设置稍有不同。注意,除了输入特定数值之外,你也可以向左或向右点击拖动组件属性来调整数值。

请尝试添加一个Chomper到场景中。修改设置属性来调整它的速度和视野(FOV)。不要忘记,当处于Play运行模式时,你可以按下F12来启用武器,然后通过O或K进行攻击。

在上面的场景中,我们选中了一个Chomper。调整了它的View FOV(视野区域)和View Direction(视野方向),这样它就不会看到Ellen,除非它转身。

摧毁敌人

我们现在学习伤害系统。我们将通过把一个箱子扔到Spitter身上来干掉它。

首先我们绘制一个关卡,Ellen会站在高处,而Spitter站在平台下方,如下图所示。

打开Prefabs > Enemies,然后将Spitter拖入场景视图中,将它放在关卡中较低位置,靠近悬崖边缘。选中Spitter,找到Enemy Behaviour Script(敌人行为脚本),降低View Distance(视野距离)的数值,使Spitter不会在测试游戏的时候马上向玩家射击。

在项目窗口中,打开Prefabs > Interactables,点击拖动PushableBox预制件到场景视图中。在层级窗口选中PushableBox,然后在检视窗口点击Add Component(添加组件)。在搜索栏输入Damage,点击搜索结果中的Damager,添加到PushableBox上。

如上图所示,Damager由绿色碰撞方框表示。这个区域会造成伤害。它目前还未覆盖PushableBox,所以当我们把方块推到Spitter身上时,箱子不会伤害它。

现在让我们移动这个盒子,让它有和PushableBox大概相同的位置和大小。有二种方法实现:

  • 选中并拖拽绿色碰撞箱边缘上的绿色点,使其覆盖PushableBox。

  • 在检视窗口中找到Damager组件。调整偏移(Offset)和大小(Size),定位并确定碰撞箱的大小。这样做最简单的方法是左键单击属性上的文字,然后向左向右拖动来调整数值

最后我们需要确定该伤害值传给了正确的游戏对象。我们在编辑器中将对象分离为图层(Layer),这样它们就能轻易被找到并分离。

选中PushableBox,在检视窗口中找到Damager组, 在HittableLayers下拉列表中,选中Enemy图层。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

重要知识点

下面是有几位Android行业大佬对应上方技术点整理的一些进阶资料。

高级进阶篇——高级UI,自定义View(部分展示)

UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!

  • 面试题部分合集

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

**

重要知识点

下面是有几位Android行业大佬对应上方技术点整理的一些进阶资料。

[外链图片转存中…(img-yHsCvQEb-1713413606095)]

高级进阶篇——高级UI,自定义View(部分展示)

UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!

[外链图片转存中…(img-sPJoUtm8-1713413606096)]

  • 面试题部分合集
    [外链图片转存中…(img-18MmKIPz-1713413606097)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值