Unity基础案例讲解:创建小型太空射击游戏(四)
点击Unity架构师之路 关注我们本期我们继续为大家进行小型太空射击游戏的后续教程
本篇教程重点
8.武装大炮
9.将碎片放入太空
10.全部放在一起
免费获取教程源代码
扫描二维码添加助教老师
回复“太空小型射击游戏”领取
小型太空射击游戏教程篇幅较长,分为四篇,本篇为第四篇,有小伙伴没有看Unity基础案例讲解:创建小型太空射击游戏(三)可以先去看一下
虽然四处飞行很有趣,但大多数玩家都渴望发射几十个光子鱼雷!
提供了一个脚本来帮助您满足这种渴望。
在层次结构中选择Spaceship,然后在“ Inspector”窗口中单击“ Add Component”按钮。单击Scripts / Ion Cannon.
您会注意到Audio Source和脚本已自动添加到GameObject中。
一些脚本需要组件。如果在GameObject上找不到组件,则会自动添加它们。
为了使您的对象播放声音,您需要音频源和音频剪辑。音频源可以附加到任何GameObject,而音频剪辑只是音频文件。
将拍摄声音从“ Project”窗口中的“ Sounds”文件夹中拖到“ Fire Sound”字段中。
您会注意到,“ Ion Cannon ”脚本具有“项目符号”字段。您的工作是创建项目符号对象。如果您不是艺术家,请不要担心-一个简单的球体就足够了。
单击层次结构中的创建按钮。从菜单中选择3D对象,然后选择Sphere.
在层次结构中选择 Sphere,然后使用检查器将“ Scale”设置为(X:0.47,Y:0.47,Z:0.47)。再次在层次结构中选择Sphere,并将其命名为Bullet。
由于您的子弹将在整个场景中移动,因此它也需要加入物理引擎。你还记得你需要做什么吗?旋转一下,如果卡住了,请检查下面的扰流板。
从层次结构中选择项目符号,然后单击检查器中的“ 添加组件” 按钮。选择“ 物理/刚体”以添加“刚体”组件。
子弹将需要速度运行,所以一定要确保是运动是选中。此外,确保利用重力是选中。
即使子弹飞离屏幕后,子弹也将继续飞行,就像您的飞船最初那样。将Bullet脚本从“项目”窗口拖动到Bullet GameObject上。现在,当子弹飞离屏幕时,它将自动被销毁。
最后,将Bullet对象拖到“ 项目”窗口的Prefab文件夹中。这将创建项目符号的预制,从而使您可以使用脚本创建大量项目符号。
现在,您已将子弹创建为Prefab,请从“ 层次结构”中删除该子弹的实例。
再次选择您的太空飞船,然后使用检查器将Bullet Prefab 添加到Bullet字段。检查器应如下所示:
最后,天空背景有些不合适,您会期望太空飞船在太空的黑色空隙中飞行,不是吗?
在层次结构中选择“Main Camera ”,然后使用检查器将“Clear Flags ”设置为“Solid Color ”,将“ Background Color”设置为 black.
保存您的工作,运行游戏,然后按空格键,用离子大炮开炸!
到目前为止,您有一艘可以射击的船,但是如果有什么东西可以射击的话,那会更有趣。现在是时候向混合物中添加一些小行星了。
在下载的文件中找到rock_d_05.obj文件,并将其拖到“项目”窗口中的“ Models”文件夹中。
右键单击rock_d_05.obj并将其重命名为Asteroid。
该文件仅包含有关模型本身的信息,它不包含任何动画。
将 Asteroid模型拖到“Scene view”中以创建其实例。您会看到小行星当前为纯白色。
(一对可爱的夫妻?我给他们一个星期!看起来这可能是一段艰难的关系)
尽管您可以说它是雪白彗星的碎片,但您应该学习如何构造模型……除非您想从事制作以雪为主题的游戏的职业
展开Asteroid GameObject并选择其名为rockLP001的子对象。在检查器中,您将看到此子GameObject附加了一个Mesh Renderer组件。渲染器将对象绘制到屏幕上,但是需要一些帮助才能做到这一点-这就是材质发挥作用的地方。
材料决定了对象的外观,例如,棉衬衫与石膏墙的外观将有很大不同。
Unity通过使用每种材质封装Shader来实现此目的。
你问什么是Shader?这是一个简单的程序,以类似C的语言编写,并在GPU上运行。着色器可以足够简单以在立方体上渲染纹理,也可以足够复杂以模拟水。
Unity提供了许多不同的着色器。例如,您可以使用它们渲染天空盒,或使对象看起来是半透明的。
在“项目”窗口中打开“ Materials”文件夹,然后单击“ Create ”按钮。从下拉列表中,选择Material并将其命名为Asteroid。现在,在“Inspector ”窗口中,您将看到材料的可用属性。
1:着色器选项使您可以从许多预打包的着色器之一中进行选择。默认的标准着色器具有极大的灵活性,因此请选择它。
2: 撞击小行星时,您需要将其淡出,因此请将“Rendering Mode”设置为“Fade”。
3:该 Albedo属性包含实际的质感。您可以通过提供颜色对其进行着色。
将flint_like_rock_4787图像从“ 项目”窗口中的“ Textures ”文件夹拖动到Albedo属性中:
4:查看“检查器”窗口底部的Asteroid材质预览,您会注意到该材质看起来有点过于光滑,就像它已经打磨过一样。(如果看不到材质预览,请尝试像这样从“检查器”的底部向上拖动Asteroid标题栏):
在Metallic属性下,您将看到两个滑块。第一个滑块确定材料的金属外观,而另一个滑块确定纹理的粗糙度。
现在,将“ Metallic”滑块设置为0.219
5:将“ Smoothness ”滑块设置为0.149。您的材料现在应如下所示:
所有材料配置完毕后,您现在需要将其添加到小行星中。将您的Asteroid材质从“项目”窗口拖动到“ Scene view.”中的Asteroid GameObject
太棒了!您有一颗小行星准备引起很多麻烦。但是首先,您需要为其添加一些行为。
拖动Debris从脚本Project window在Scripts folder中的小行星。
碎片脚本会自动将球体碰撞器,刚体和音频源添加到小行星。现在设置所有必需的属性。
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 ”组件的“ 渲染器”属性。
最后,将小行星从“层次结构”拖到“项目”窗口中的Prefab文件夹。当提示您创建预制时,单击原始预制。现在您已经完成了创建Asteroid Prefab的工作,从层次结构中删除Asteroid实例。
您需要的最后一件事是所有小行星的生成点。单击层次结构中的创建按钮,然后选择创建空。命名您的产卵点Debris.。
您将希望此生成点与播放器在同一平面上。否则,玩家将在碎片上方或下方飞行。用作参考的良好GameObject是missile_R_0,因为它位于模型的中心。
拖动碎片游戏物体,并使其成为一个孩子的missile_R_0。然后,碎片的变换坐标将相对于其父级GameObject。
要匹配父对象的坐标,请将“碎片”位置设置为X:0,Y:0,Z:0)。通过这个小技巧,您可以确定太空飞船和碎片在同一平面上。
接下来,将“ Debris ”移动到其原来所在的“层次结构”视图的底部。
向右移动 Debris游戏对象7.5点。如果您没有设法使它们完全相同,则其新位置应为(X:20.0,Y:1.72,Z:7.06)。
现在您已经配置了飞船和小行星,接下来需要将所有元素组合在一起并创建一个简单的游戏。
单击层次结构中的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上生成小行星。
该游戏管理器组件应如下所示:
最后,在Audio Source component,添加background-music 的AudioClip领域,并确保检查 loop 复选框。
运行您的游戏,并查看一切。
恭喜,您已经在Unity中创建了自己的第一款游戏!
在以后的教程中,您将了解Unity的各个小节,这些小节实际上可以使您精通此游戏。您还将学习如何编写自己的脚本以利用Unity的灵活API。
重磅福利
《饥荒》生存类游戏开发
5天直播课
大厂总程手把手教学
从零开始打磨游戏demo
挑战大厂高薪
机会难得,抓紧扫码添加老师免费领取报名资格
极速入门|弯道超车|高薪就业|冲击大厂
END
Unity教程 | 墙外的Unity | 免费资源
点击关注我们
一键两连,你就涨钱
页:
[1]