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

发布于 2021-04-20 06:44 ,所属分类:知识学习综合资讯


点击上方“蓝字”我们吧!


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


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


学习内容


前言


17.添加Rigidbody.组件


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


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


前言

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


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


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



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


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


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


17.添加Rigidbody组件


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



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



单击Physics category,然后选择Rigidbody.



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



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



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



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



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


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



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



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


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



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


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


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




END



Unity架构师之路


Unity教程 | 墙外的Unity | 免费资源 | 游戏开发日记


长按我们添加获取教程源代码


(后台回复“源代码”)


相关资源