Unity官方实例教程 Space Shooter(太空射击游戏)



Space Shooter 太空射击

传送门

Unity官方实例教程 Space Shooter(一)
Unity官方实例教程 Space Shooter(二)
Unity官方实例教程 Space Shooter(三)
Unity官方实例教程 Space Shooter(四)
Unity官方实例教程 Space Shooter(五)

前言


游戏截图

Space Shooter教程汉化版,点击这里

还是提前说明一下,视频中的Unity版本为4.2,而现在最新版本是5.2,有部分内容的制作方法不一样了,所以文中都以5.2版本为基准。

你将学到什么?

  • 如何在Unity Asset Store下载资源
  • 如何导入游戏资源
  • 如何保存适合自己的编辑器布局
  • 如何设置游戏视窗大小
  • 正交摄像机的用法
  • 如何添加模型到场景里面
  • Capsule Collider和Mesh Collider的用法
  • 如何为飞船添加灯光
  • 如何给飞船添加引擎喷射效果

一、新建一个项目

关于如何新建一个项目,这边就不在做详细的介绍了,有需要的朋友可以查看Unity官方实例教程 Roll-a-Ball(一)这边文章的相关内容,我们这边只提示一下,新项目的名称为Space Shooter

二、在Unity Asset Store中下载资源

首先我们在通过Windows -> Asset Store打开Asset Store,如下:


Windows -> Asset Store

然后我们便会看到Asset Store的界面,接下来我们在Search栏输入我们需要搜索的资源名称,本例中我们搜索Space Shooter,然后就会出现搜索结果,结果里面第一个就是我们需要的资源素材了


资源搜索结果

点击该资源,然后在页面中找到下载按钮,然后等在资源下载完成,就可以进行导入了


导入按钮

对于已经下载的资源,除了在这边进行导入,我们还可以在已下载的列表中进行导入,我们首先点击切换到下载管理器按钮,然后在下载页,选择导入我们需要的资源即可,如下图:


下载管理器

我们点击导入按钮后,就会弹出导入界面,在这里,我一定要确保所有的资源项都被勾选,如果不确定,我们可以点击一下All按钮来勾选所有的资源,确保所有资源都被勾选后,我们便可以点击Import按钮来进行导入操作了


导入资源

导入成功后,我们可以看到在我们项目的Assets文件夹下面多了很多资源文件,如下图:


Paste_Image.png

到这一步,游戏所需的所有资源我们就全部的导入成功了!

三、配置Unity编辑器布局

为了更效率更方便我们制作游戏,把编辑器里面的各个窗口进行一个合理的布局是非常重要的,在这边,我们按照官方推荐的布局,将编辑器布置成下面这样:


Paste_Image.png

当我们布置好我们的编辑器后,如果下次再重新打开,就会发现布局又回到以前的默认布局了,所以为了方便起见,我们将这个布局进行一下保存,这样只要以后我们需要,在任何项目都可以调用这个布局


保存布局

我们选择Save Layout...就会弹出保存对话框,我们将该布局名称命名为Space Shooter,这样以后无论我们的编辑器被弄乱成什么样子,只要点击一下Space Shooter就可以回到我们这个布局了

四、设置发布平台和游戏视窗大小

本例中,最后我们会将游戏发布到wed平台,所以我们首先将游戏的发布平台设置为Wed平台(如何设置发布平台,可以参见Unity官方实例教程 Roll-a-Ball(二)的相关内容)

然后我们按照官方例子的要求来调整一下游戏的视窗大小,我们通过Edit -> Project Settings -> Player,打开Player Settings,如下图:


Edit -> Project Settings -> Player

然后在右边的Inspector窗口中,选择wed平台,然后将屏幕的宽高分别设置为600*900,如下图:


设置游戏窗口大小

做好这些设置后,我们将当前场景进行一下保存,我们首先在Assets文件下面创建一个名为_Scenes的文件夹,然后将保存的场景放入该文件夹中,在本例中,我们将场景保存为Main(关于如何保存场景参见Unity官方实例教程 Roll-a-Ball(一)的相关内容)

好的资源分类有利于项目的管理,所以好的习惯一开始我们就要养成

五、设置正交摄像机

由于Space Shooter游戏是一个顶视角的游戏,所以我们需要将摄像机进行改变,设置为正交类型的摄像机,我们选中摄像机,然后在Inspector中将摄像机的Projection改为Orthographic


改为Orthographic

然后我们将摄像机的Transform属性重置,再把摄像机的Rotation的X设置为90,让它直直的看这下方,最后我们调整摄像机的Size为10

六、添加飞船和设置灯光

首先我们在资源文件中找到飞船的模型,依次打开Assets -> Models -> vehicle_playerShip,然后把vehicle_playerShip模型拖入到Hierarchy窗口中,然后做我们添加一个GameObject的两个标准动作,重置Transforms和命名,在这里我们将飞船的名字命名为Player


添加飞船模型

经过上面的操作我们便可以在编辑器里面看到飞船的模型,为了让飞船的模型在游戏里面有更好的显示效果,我们给飞船添加两个灯光,一个主灯光(Main Light),一个填充灯光(Fill Light)

首先主灯光我们无需添加,修改Unity自动添加的默认灯光就可以了,我们先创建一个空的GameObject,用来当做文件夹分类,装下所有的灯光对象,命名为Lighting,然后将自带的灯光进行重置Transforms和命名,名称修改为Main Light,然后把Main Light的Rotation属性的xyz分别设置为(30,256,-50),这是我们便可看看效果了


打上主灯光的飞船效果

其实这边Main Light的Rotation属性,大家可以试着自己调,有利于理解灯光的作用,主要自己喜欢,不用完全按教程来

有了主灯光后,我们再为飞船添加一个辅助的填充灯光,首先我们新建一个平行光(Directional light),进行两个标准动作,名称修改为Fill Light,并拖入Lighting下面,然后把Fill Light的Rotation属性的xyz分别设置为(7,30,-360),最后我们把Fill Light的颜色设置为淡蓝色(这边的颜色大家如果喜欢,也可以自行调整)


打上填充灯光的飞船效果

七、设置飞船的物理属性和碰撞

接下来我们给飞船添加刚体属性(Rigidbody),添加刚体属性的教程请参见Unity官方实例教程 Roll-a-Ball(一)的相关内容
但是这里需要说明的是,由于我们的飞船,肯定不希望飞船会想球体一样自由落下,这样就太无语啦,所以我们需要给飞船的刚体属性中去掉重力选项,如下图:


去掉重力选项

刚体添加完成后,接着我们需要给飞船设置碰撞,不然没有碰撞飞船无敌一般的存在,就不好玩啦,这里设置碰撞有两种方法:

  • Capsule Collider(胶囊碰撞)
  • Mesh Collider(模型碰撞)

Capsule Collider(胶囊碰撞)

两种方法我们都使用以下,来看看他们的不同和利弊,首先我们先给飞船添加一个Capsule Collider,通过Add Component -> Physics -> Capsule Collider来添加,然后我们设置Radius0.6Height1.7DirectionZ-Axis


设置Capsule Collider

设置完Capsule Collider,我们可以看到飞船模型周围出现一圈胶囊形状的绿圈,这个绿圈就代表这检查飞船碰撞的范围


胶囊碰撞

从上图中我们可以看出,红圈处其实是飞船模型没有的地方,但是实际检测碰撞的时候是会被计算到的,所以我们可以看出,胶囊碰撞体的优劣如下:

  • 缺点:碰撞检测不太精准,会出现碰撞体和模型不匹配的问题
  • 优点:效率高,因为不管多么复杂的模型,胶囊碰撞都只是两个球体组成的

Mesh Collider(模型碰撞)

接下来我们删除上面添加的胶囊碰撞体,重新给飞船添加一个Mesh Collider
我们通过Add Component -> Physics -> Mesh Collider来添加,然后勾选ConvexIs Trigger选项,接下来我们便可看到飞船的模型碰撞如下:


Mesh Collider(模型碰撞)

我们从上图可以看到,绿线同样表示这飞船的碰撞范围,这次的范围要比胶囊碰撞精确多了,但是我们同样可以看到,这次的绿线也比胶囊碰撞复杂多了,所以我们可得知Mesh Collider的优劣如下:

  • 缺点:性能消耗更多
  • 优点:碰撞检测更加精确

所以我们在以后的实际运用中,需要根据具体的情况来决定使用何种碰撞,当然看到这里就会有朋友会问,就没有两全其美的方法吗?答案是有的,我们仔细观察一下Mesh Collider组件,会发现他有一个Mesh选项,这个选项是做什么用的呢?它就是决定着我们具体使用哪一个模型来进行碰撞检测,一般默认会使用组件所属对象的自身模型,但是其实我们做碰撞检测并不需要像显示一样用换个精度如此之高的模型,我们只需一个大概的轮廓就行了,所以我们可以制作一个简单的面数相对较少的模型,专门用于碰撞检测

所以我们将资源中已经做好的专门用于碰撞的模型拖入到Mesh选项中


Paste_Image.png

然后我们在观察一下飞船的碰撞,我们就会发现碰撞模型的面数精简的许多,并且精度也非常不错!


专门用于碰撞的模型

八、给飞机添加引擎喷射效果

首先我们在Assets -> Prefabs -> VFX -> Engines -> engines_player,找到喷射效果资源,然后将喷射资源拖到飞船下面,如下图:


添加喷射效果

然后展开engines_player,选中part_jet_flarepart_jet_core两个对象


Paste_Image.png

在将Scene窗口视图调整为俯视角,然后通过Gizmos调整一下喷射效果的大小到合适的大小


调整喷射效果大小

最后我们就可以看到飞机的引擎喷射效果了,非常棒!


喷射效果

下集预告

在下一集,我们将会学会:

  • 如何控制飞船移动
  • 如何控制飞船发射子弹
  • 如何创建游戏边界并回收子弹
  • 4
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值