查看: 1866|回复: 0

Unity基础案例讲解:创建小型太空射击游戏(四)

[复制链接]
发表于 2022-11-12 16:26:13 | 显示全部楼层 |阅读模式
点击Unity架构师之路 关注我们

本期我们继续为大家进行小型太空射击游戏的后续教程

本篇教程重点

8.武装大炮

9.将碎片放入太空

10.全部放在一起

免费获取教程源代码

扫描二维码添加助教老师

  回复“太空小型射击游戏”领取

小型太空射击游戏教程篇幅较长,分为四篇,本篇为第四篇,有小伙伴没有看  Unity基础案例讲解:创建小型太空射击游戏(三)可以先去看一下

虽然四处飞行很有趣,但大多数玩家都渴望发射几十个光子鱼雷!

提供了一个脚本来帮助您满足这种渴望。

在层次结构中选择Spaceship,然后在“ Inspector”窗口中单击“ Add Component”按钮。单击Scripts / Ion Cannon.

您会注意到Audio Source和脚本已自动添加到GameObject中。

Unity基础案例讲解:创建小型太空射击游戏(四)-8718

一些脚本需要组件。如果在GameObject上找不到组件,则会自动添加它们。

为了使您的对象播放声音,您需要音频源和音频剪辑。音频源可以附加到任何GameObject,而音频剪辑只是音频文件。

将拍摄声音从“ Project”窗口中的“ Sounds”文件夹中拖到“ Fire Sound”字段中。

Unity基础案例讲解:创建小型太空射击游戏(四)-8560

您会注意到,“ Ion Cannon ”脚本具有“项目符号”字段。您的工作是创建项目符号对象。如果您不是艺术家,请不要担心-一个简单的球体就足够了。

单击层次结构中的创建按钮。从菜单中选择3D对象,然后选择Sphere.

Unity基础案例讲解:创建小型太空射击游戏(四)-183

在层次结构中选择 Sphere,然后使用检查器将“ Scale”设置为(X:0.47,Y:0.47,Z:0.47)。再次在层次结构中选择Sphere,并将其命名为Bullet。

由于您的子弹将在整个场景中移动,因此它也需要加入物理引擎。你还记得你需要做什么吗?旋转一下,如果卡住了,请检查下面的扰流板。

从层次结构中选择项目符号,然后单击检查器中的“ 添加组件” 按钮。选择“ 物理/刚体”以添加“刚体”组件。

子弹将需要速度运行,所以一定要确保是运动是选中。此外,确保利用重力是选中。

即使子弹飞离屏幕后,子弹也将继续飞行,就像您的飞船最初那样。将Bullet脚本从“项目”窗口拖动到Bullet GameObject上。现在,当子弹飞离屏幕时,它将自动被销毁。

最后,将Bullet对象拖到“ 项目”窗口的Prefab文件夹中。这将创建项目符号的预制,从而使您可以使用脚本创建大量项目符号。

现在,您已将子弹创建为Prefab,请从“ 层次结构”中删除该子弹的实例。

再次选择您的太空飞船,然后使用检查器将Bullet Prefab 添加到Bullet字段。检查器应如下所示:

Unity基础案例讲解:创建小型太空射击游戏(四)-8712

最后,天空背景有些不合适,您会期望太空飞船在太空的黑色空隙中飞行,不是吗?

在层次结构中选择“  Main Camera ”,然后使用检查器将“Clear Flags ”设置为“  Solid Color ”,将“ Background Color”设置为 black.

Unity基础案例讲解:创建小型太空射击游戏(四)-8427

保存您的工作,运行游戏,然后按空格键,用离子大炮开炸!

Unity基础案例讲解:创建小型太空射击游戏(四)-3277

到目前为止,您有一艘可以射击的船,但是如果有什么东西可以射击的话,那会更有趣。现在是时候向混合物中添加一些小行星了。

在下载的文件中找到rock_d_05.obj文件,并将其拖到“项目”窗口中的“ Models”文件夹中。

右键单击rock_d_05.obj并将其重命名为Asteroid。

Unity基础案例讲解:创建小型太空射击游戏(四)-2779

该文件仅包含有关模型本身的信息,它不包含任何动画。

将 Asteroid模型拖到“  Scene view”中以创建其实例。您会看到小行星当前为纯白色。

Unity基础案例讲解:创建小型太空射击游戏(四)-8958

(一对可爱的夫妻?我给他们一个星期!看起来这可能是一段艰难的关系)

尽管您可以说它是雪白彗星的碎片,但您应该学习如何构造模型……除非您想从事制作以雪为主题的游戏的职业

展开Asteroid GameObject并选择其名为rockLP001的子对象。在检查器中,您将看到此子GameObject附加了一个Mesh Renderer组件。渲染器将对象绘制到屏幕上,但是需要一些帮助才能做到这一点-这就是材质发挥作用的地方。

材料决定了对象的外观,例如,棉衬衫与石膏墙的外观将有很大不同。

Unity通过使用每种材质封装Shader来实现此目的。

你问什么是Shader?这是一个简单的程序,以类似C的语言编写,并在GPU上运行。着色器可以足够简单以在立方体上渲染纹理,也可以足够复杂以模拟水。

Unity提供了许多不同的着色器。例如,您可以使用它们渲染天空盒,或使对象看起来是半透明的。

在“项目”窗口中打开“ Materials”文件夹,然后单击“ Create ”按钮。从下拉列表中,选择Material并将其命名为Asteroid。现在,在“Inspector ”窗口中,您将看到材料的可用属性。

Unity基础案例讲解:创建小型太空射击游戏(四)-2400

1:着色器选项使您可以从许多预打包的着色器之一中进行选择。默认的标准着色器具有极大的灵活性,因此请选择它。

2: 撞击小行星时,您需要将其淡出,因此请将“  Rendering Mode”设置为“Fade”。

3:该 Albedo属性包含实际的质感。您可以通过提供颜色对其进行着色。

将flint_like_rock_4787图像从“ 项目”窗口中的“ Textures ”文件夹拖动到Albedo属性中:

Unity基础案例讲解:创建小型太空射击游戏(四)-1868

4:查看“检查器”窗口底部的Asteroid材质预览,您会注意到该材质看起来有点过于光滑,就像它已经打磨过一样。(如果看不到材质预览,请尝试像这样从“检查器”的底部向上拖动Asteroid标题栏):

Unity基础案例讲解:创建小型太空射击游戏(四)-8642

Unity基础案例讲解:创建小型太空射击游戏(四)-9685

在Metallic属性下,您将看到两个滑块。第一个滑块确定材料的金属外观,而另一个滑块确定纹理的粗糙度。

现在,将“ Metallic”滑块设置为0.219

5:将“ Smoothness ”滑块设置为0.149。您的材料现在应如下所示:

Unity基础案例讲解:创建小型太空射击游戏(四)-2481

所有材料配置完毕后,您现在需要将其添加到小行星中。将您的Asteroid材质从“项目”窗口拖动到“ Scene view.”中的Asteroid GameObject

Unity基础案例讲解:创建小型太空射击游戏(四)-2133

太棒了!您有一颗小行星准备引起很多麻烦。但是首先,您需要为其添加一些行为。

拖动Debris从脚本Project window在Scripts folder中的小行星。

碎片脚本会自动将球体碰撞器,刚体和音频源添加到小行星。现在设置所有必需的属性。

Unity基础案例讲解:创建小型太空射击游戏(四)-6659

1:将Sphere Collider的中心设置为(X:0.01,Y:-0.09,Z:0.89)。

2:将Radius 设置为1.49。

3:选中是 Trigger复选框。

4:对于刚体,请取消选中“  Use Gravity ”复选框。

5:选中是Kinematic 复选框。

6:对于Debris script,将“ Min Speed”设置为15。

7:将 Max Speed设置为30。

8:将explosion 声音文件从“Sounds”文件夹拖到“Explosion Sound”字段。

9:对于Asteroid GameObject的变换,将Scale设置为(X:3.02,Y:3.02,Z:3.02)。

10:添加Debris组件还添加了必需的“ Renderer Fade”组件。当子弹与小行星碰撞时,小行11 星应逐渐消失而不是从屏幕上消失。该组件仅需要一个淡入淡出时间,因此请将“  Fade Time”设置为0.5。

随着小行星从屏幕上移开,它们应该像宇宙飞船一样包裹。

从“项目”窗口中的“脚本”文件夹中,将ScreenWrap脚本拖到Asteroid上。就像使用太空飞船一样,您需要使用正确的渲染器配置屏幕包裹。

小行星有一个名为rockLP001的子游戏对象。将此子GameObject拖到Asteroid GameObject 的检查器中的“ Screen Wrap ”组件的“ 渲染器”属性。

Unity基础案例讲解:创建小型太空射击游戏(四)-7123

最后,将小行星从“层次结构”拖到“项目”窗口中的Prefab文件夹。当提示您创建预制时,单击原始预制。现在您已经完成了创建Asteroid Prefab的工作,从层次结构中删除Asteroid实例。

您需要的最后一件事是所有小行星的生成点。单击层次结构中的创建按钮,然后选择创建空。命名您的产卵点Debris.。

您将希望此生成点与播放器在同一平面上。否则,玩家将在碎片上方或下方飞行。用作参考的良好GameObject是missile_R_0,因为它位于模型的中心。

拖动碎片游戏物体,并使其成为一个孩子的missile_R_0。然后,碎片的变换坐标将相对于其父级GameObject。

要匹配父对象的坐标,请将“碎片”位置设置为X:0,Y:0,Z:0)。通过这个小技巧,您可以确定太空飞船和碎片在同一平面上。

接下来,将“ Debris ”移动到其原来所在的“层次结构”视图的底部。

Unity基础案例讲解:创建小型太空射击游戏(四)-6756

向右移动 Debris游戏对象7.5点。如果您没有设法使它们完全相同,则其新位置应为(X:20.0,Y:1.72,Z:7.06)。

Unity基础案例讲解:创建小型太空射击游戏(四)-5947

现在您已经配置了飞船和小行星,接下来需要将所有元素组合在一起并创建一个简单的游戏。

单击层次结构中的Create按钮,然后选择Create Empty。在Inspector中,单击新GameObject的名称,并将其命名为GameManager。

随着GameManager的层次选择,点击添加GameManager,选择Scripts,然后选择游戏管理器。

您会看到该操作也添加了音频源。此外,GameManager组件具有几个需要设置的字段,这些字段将用于生成小行星。

从“Debris ”字段开始。确保在“层次结构”中选择了GameManager,然后将Asteroid Prefab拖动到“ Debris ”字段中。

那你在这里做什么?该GameManager负责产卵小行星。它使用“ 碎片”字段来确定要生成的对象。您告诉它使用Asteroid Prefab。

接下来,仍然在GameManager上:

1:将“ Min Time”设置为2,将“  Max Time ”设置为5。这告诉脚本它应该多快生成小行星。

2:将“ Total Items on Screen ”设置为5。这将小行星的数量限制为5,这样玩家就不会感到不知所措。

3:将“ Debris GameObject”从“层次结构”拖到“ 屏幕碎片”字段。这指定GameManager应该在碎片GameObject上生成小行星。

该游戏管理器组件应如下所示:

Unity基础案例讲解:创建小型太空射击游戏(四)-6998

最后,在Audio Source component,添加background-music 的AudioClip领域,并确保检查 loop 复选框。

Unity基础案例讲解:创建小型太空射击游戏(四)-701

运行您的游戏,并查看一切。

Unity基础案例讲解:创建小型太空射击游戏(四)-4799

恭喜,您已经在Unity中创建了自己的第一款游戏!

在以后的教程中,您将了解Unity的各个小节,这些小节实际上可以使您精通此游戏。您还将学习如何编写自己的脚本以利用Unity的灵活API。

重磅福利

Unity基础案例讲解:创建小型太空射击游戏(四)-1434

《饥荒》生存类游戏开发

5天直播课

大厂总程手把手教学

从零开始打磨游戏demo

挑战大厂高薪

机会难得,抓紧扫码添加老师免费领取报名资格

极速入门|弯道超车|高薪就业|冲击大厂

Unity基础案例讲解:创建小型太空射击游戏(四)-4330

END

Unity基础案例讲解:创建小型太空射击游戏(四)-6581

Unity基础案例讲解:创建小型太空射击游戏(四)-3606

Unity教程 | 墙外的Unity | 免费资源

点击关注我们

Unity基础案例讲解:创建小型太空射击游戏(四)-4019

一键两连,你就涨钱

您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

快速回复 返回顶部 返回列表