引擎入门 | 创建双杆射击游戏(组件 1)

欢迎来到创建双杆射击游戏的第三部分:组件,也是最后一部分!

在本教程中,您将获得英雄的*统治权,用子弹炸开风景,并学习有关Unity中组件的所有知识!

 

学习内容

前言

 

17.添加Rigidbody.组件

 

文章末尾可获取教程源代码

 

本篇制作双杆射击游戏(组件)篇幅较长,分为五篇,本篇为第一篇

 

前言

如果你在这篇之前已经学习过了创建双杆射击游戏的入门和GameObjects教程,您已经完成了准备好所有主要环节目标,但这实际上是一个空洞的阶段,因为我们的英雄是没有自主意识的。

 

在本教程中,您将通过使用Components来为游戏添加一些交互性,这是Unity游戏开发的基础。如果您将GameObject视为名词,那么组件将是动词或执行动作的部分;组件代表GameObject做某事。

 

您已经了解了一些有关组件的知识。在本系列教程的前两部分中,您了解了每个GameObject如何具有一个必需的组件:Transform组件,该组件存储GameObject的位置,旋转和比例。

 

引擎入门 | 创建双杆射击游戏(组件 1)

 

 

但是Unity包含的组件远不止于此。例如,有一个 light组件可以照亮附近的任何物体。有一个 audio source 组件会产生声音。甚至还有一个 particle system组件都会产生一些令人印象深刻的视觉效果。而且,当然,如果没有满足您需求的组件,您可以编写自己的组件。

 

在本教程中,您将学习几种类型的组件,包括Rigidbody组件,script组件等等。在本教程结束时,您的海军陆战队将开始跑步并开枪!

 

目前,太空海军只知道如何像雕像一样站立。如果他要避免成为外星人的零食,他需要四处走动。

 

17.添加Rigidbody组件

 

在层次结构中,选择SpaceMarine GameObject,然后在检查器中单击“ Add Component”按钮。

 

引擎入门 | 创建双杆射击游戏(组件 1)

 

您会看到许多不同的类别。当您知道需要哪个组件时,只需按名称搜索即可。否则,请选择类别之一并选择最佳选项。

 

引擎入门 | 创建双杆射击游戏(组件 1)

 

单击Physics category,然后选择Rigidbody.

 

 

引擎入门 | 创建双杆射击游戏(组件 1)

 

您会看到Rigidbody组件已附加到GameObject。恭喜你!您已经添加了第一个组件。

 

引擎入门 | 创建双杆射击游戏(组件 1)

 

每个组件都有自己的一组属性,值等。这些属性可以在检查器或代码中更改。组件还具有自己的图标,可轻松一目了然地确定其类型。

 

引擎入门 | 创建双杆射击游戏(组件 1)

 

您会在每个组件的右上角注意到一些图标,如下所示:

 

引擎入门 | 创建双杆射击游戏(组件 1)

 

第一个图标是“ Reference”图标。点击它。它将打开另一个窗口,其中包含该组件的文档页面。如果您安装了文档,则此页面位于您的计算机上-是的,搜索栏可以工作。

 

引擎入门 | 创建双杆射击游戏(组件 1)

 

第二个图标是Unity 2018中的新功能。这是预设按钮。在自定义组件时,您可能更喜欢先前创建的特定预设配置。

 

在 Rigidbody组件,检查IsKinematic复选框。同样,取消选中 “Use Gravity”选项。稍后您将了解这些选项。但是,一旦取消选中它们,请单击 “ presets”按钮。

 

引擎入门 | 创建双杆射击游戏(组件 1)

 

您可以将该配置另存为预设,然后根据需要切换到该配置。您还可以使用分配的预设创建新的GameObject,从而节省时间。

 

引擎入门 | 创建双杆射击游戏(组件 1)

 

此对话框将列出您的所有预设。单击 “  Save current to”,然后从项目浏览器中选择“  Presets”文件夹。称之为 Kinematic。现在,再次单击预设按钮时,您将看到新保存的预设。进行更改时,预设是保存当前配置设置的好方法。

 

组件右上角的三个按钮中的最后一个是齿轮图标。点击它。该对话框将出现:

 

引擎入门 | 创建双杆射击游戏(组件 1)

 

以下是此处列出的最重要的选项:

 

1 Reset会将组件重置为其默认值。

2 “Move to Front ”和“ Move to Back”可调整2D游戏中子画面的顺序。

3 Remove Component 将从游戏对象中删除该组件-您可以撤消此操作。

4 Copy Component 允许您从一个GameObject复制组件并将其粘贴到另一个。

5 将组件粘贴为新组件会将复制的组件粘贴到GameObject。

6 Paste Component Values允许您从复制的组件中覆盖当前组件的值。具体来说,您可以在玩游戏时复制组件的值。当您停止游戏时,可以将这些值粘贴到另一个组件上。这很有用,因为有时在您玩游戏时微调事物以了解实际效果是很有用的。

 

从菜单中选择remove component。现在,再次单击add component 按钮,然后将 Rigidbody组件添加回GameObject。请记住,它在物理类别中。最后,单击 presets按钮,然后选择Kinematic预设。

 

请注意,刚体组件已根据您的预设自动进行了魔术更新。

 

但是您可能会问,什么是 Rigidbody?

 

通过将“Rigidbody”组件添加到太空海洋中,您已经做到了,这样他现在就可以响应碰撞事件并响应重力。但是,您不希望他从敌人或墙壁反弹。您肯定想知道那些碰撞事件,但是您不希望英雄仅仅因为撞到专栏而就失控了。

 

该Kinematic属性告诉物理引擎您是手动控制海军陆战队,而不是让物理引擎为您移动海军陆战队。但是物理引擎仍然知道海洋在哪里以及何时与某些物体碰撞。这很有用,这样当海洋物体与外星人发生碰撞时,物理引擎会通知您,以便您可以进行某些事情,例如海洋物体被砍断!

 

取消选中该Use Gravity选项,太空船将不会受到重力的影响。再说一遍-您不需要这样做,因为您将手动移动海军陆战队,并且仅使用刚体进行碰撞检测。

 

现在是最有趣的部分:现在该进行海上舞蹈了,或移动也是可以的。

 

Unity提供了一些内置组件以使移动变得容易。但是出于学习目的,在本教程中。您将通过脚本的功能手动完成所有操作。

 

本篇教程到这里就结束,下一篇我们就开始写代码啦。

 

 

 

上一篇:【Unity 题型】脚本开发


下一篇:Unity相机跟随以及子弹发射笔记