Unity入门,第2部分

再一次问好! 之前已经介绍了引擎的基本统计信息(并且在我个人对游戏设计的态度上已经偏离了很多话题),现在是时候谈谈项目的构建基块以及它们如何相互作用:精灵,对象和碰撞。

总而言之, 场景是指整个游戏的任何离散部分,无论是区域,菜单还是其他一些自封闭的界面。 场景包含对象 ,这些对象指的是游戏的任何元素-脚本,声音效果和静态精灵都被视为对象,并且都包含在Unity界面左侧的层次结构中 。 对象包含一些组件 ,这些组件描述了对象的固有属性以及它如何响应各种触发器。 在下一篇文章中,我们将更详细地介绍组件,但是为了使我们的对象做任何需要注意的事情,我们需要使用几个简单的组件。

最简单的对象类型是静态精灵,易于导入和使用。 可以通过GameObject头菜单将其添加到场景中,也可以将其从界面底部的资源窗格中拖动。 这些对象不会移动,碰撞或与任何东西交互,并且适合用作背景细节,静态UI元素和类似应用程序。 大多数游戏中对象都将从与此类似的东西开始,并且将通过添加组件来获得更多功能。

通过突出显示该对象并检查Unity界面右侧的“检查器”窗格,可以找到对象的组件。 默认情况下,所有2D对象都以Transform组件和Sprite Renderer组件开头。 变换表示对象在场景中的位置,与直接单击和拖动相比,可以直接对其进行编辑以更精确地放置它。 Sprite Renderer表示对象的外观及其显示方式-包括基本sprite,但也可以用于更改对象的材质,颜色和放置在其上的排序层。 在这里,分类层至关重要。 排序层大致对应于场景的Z轴,确定哪些对象显示为与相机“更近”,而实际上不影响它们的外观大小或视角。 默认情况下,只有一层,并且根据对象在层次结构中出现的顺序显示对象。 但是,这并不理想,可以随意添加额外的层并订购这些层以满足开发人员的需求。 图层从最远的顶部到最底部的底部进行排序-如果您将播放器从图层菜单底部的图片向上看,则很容易确定正确的位置。

这两个组件对于场景的静态元素很有用,但制作完整游戏所需的一切远非如此。 Unity的对象处理方法方便地采用了模块化-可以使用“检查器”窗格最下部的“添加组件”按钮将任意数量的组件添加到对象中。 由于我们暂时正在处理碰撞,因此我们现在将讨论两种组件类型。 第一个是Rigidbody 2D组件,也是两者中较复杂的一个。

刚体2D组件可为其附着的对象提供物理模拟,包括与Collider组件配对时的重力,拖动,旋转以及与其他对象的碰撞。 通过设计,刚体2D组件通过更改其位置值来覆盖对象的“变换”组件。 有很多值,但是这些值看似简单且易于理解。

身体类型决定了在对象上模拟物理的程度。 动态值(默认值)可提供质量,阻力,摩擦和旋转的完整模拟-但是,它是最消耗资源的选项。 这伴随着各种数字选项来确定对象的质量,阻力等,以及一个“自动质量”选项,该选项使用对象对撞机的质量值。 运动学类型模拟物理,但是忽略了作用在对象上的外力。 它不需要任何数值,并且仅用于在玩家控制下移动的对象。 静态对象是所有对象中最简单的-它是具有无限质量的固定对象,适用于平台或墙壁之类的东西。

通过取消选中“模拟”选项,可以禁用具有此组件的所有对象的物理特性。 “睡眠模式”确定对象首先是否受物理约束,是否必须在碰撞之前被碰撞激活,以及是否允许其“睡眠”并停止模拟以节省性能。 插值可让用户确定物理平滑方法:根据对象的过去位置进行插值以平滑对象的运动;根据对象的预期未来位置进行插值以进行平滑,或者,为无则避免任何额外的平滑并可能改善性能。 运动约束条件使用户可以指定对象无法在其上移动或阻止旋转的平面。 例如,这可能允许某人创建一个漂浮的平台,该平台在踩踏时会旋转,或者一个可以向左或向右滑动但不能抬离地面的盒子。

对撞机组件与Ridigbody 2D组件并驾齐驱,两者的结合使用户可以使用Unity的内置物理引擎创建基本的2D环境。 碰撞器具有各种预制的形状,以适应各种使用情况。 最常见的类型是Box,Circle和Polygon,但也有一些用于边缘情况的类型。 所有Collider组件都允许您定义一个形状或边界,具有Collider组件的其他对象将以物理上合适的方式与之交互。 箱形和圆形碰撞器相对易于使用,是具有用户定义的尺寸和位置的简单形状。 Polygon Collider更精确,适用于需要更高精度的不规则形状的对象。 当添加到对象中时,“多边形对撞机”将创建一个多面体形状,将其完全封闭。 从那里,用户可以使用“编辑碰撞器”按钮手动微调碰撞器的形状。

通过使用这两个组件,用户可以轻松模拟基本物理原理和碰撞。 这对于原型设计和早期游戏开发很有用,并提供了快速有用的模拟选项,甚至可以成为大型作品的主要内容。 但是,内置的物理引擎可能无法满足用户对其项目的确切意图-在这种情况下,脚本组件变得必要。 脚本编写允许对对象行为进行大量的微调和直接控制,并为播放器控制对象提供了基础,我们将在下一部分进行介绍。 在此之前,请保重!

-米