如何通过unity3d构建3D场景

本教程将解释用于创建游戏场景的元素和方法。

1.游戏对象

存在

Unity中重要的是游戏对象。了解一个游戏对象是什么以及如何使用它是非常重要的。本节将解释这个概念。

什么是游戏对象?你游戏中的一切都是游戏对象。但是,游戏对象本身并不能做所有的事情。它们需要特定的属性才能成为角色、环境或者特定的效果。但是每个对象会做许多不同的事情。如果每一个物体都是游戏物体,如何区分一个交互能力强的物体和一个静态的房间?是什么让游戏对象互不相同?

答案是游戏对象是一个容器。它们是一个可以容纳不同积木的空盒子,这些积木与灯光贴图或物理驱动的汽车形成一个岛。为了真正理解游戏对象,你需要理解这些方块;这些块被称为组件。根据您想要创建的对象,您可以向游戏对象添加不同的组件。想象游戏对象是一个空的烹饪锅,组件是组成游戏的不同成分

游戏对象和组件的关系现在我们知道游戏对象包含组件。我们将使用云的常用组件-

转换组件来讨论两者之间的关系。打开任何场景,创建一个新的游戏对象(使用Shift-Command-N),选择它并查看检查器。

空对象的视图面板

你可能已经注意到这里有两个完全不同的部分。“加米欧

“object”和“Transform”属于游戏对象部分的是关于游戏的。

关于对象本身的信息。这里只有对象的名称。转换部分显示

显示转换组件的信息。当您创建新对象时,它将

自动包含转换组件。所有对象都有一个变换。

组件。你不能在Unity,transformation中创建一个没有变换组件的对象。

组件为所有对象提供独特的功能。

转换组件转换组件是重要的组件之一。它定义了游戏对象在场景视图中的位置、旋转和缩放。如果游戏对象没有旋转组件,它就不会存在于世界中。请参考转换组件一节。变换组件还可以使用一个名为Parenting的函数,它由Unity编辑器使用,是使用游戏对象的关键部分。

亲子是指你可以让一个游戏对象的转化值完全依赖于另一个不同的游戏对象。简单地说,一个物体和另一个物体一起运动。当一个对象是其他对象的父对象时,该对象的旋转将影响所有子对象。您可以使用分层视图(Hierarchy)

视图)通过将任何对象拖到另一个对象上来创建父对象。这将在两个对象之间创建父子关系。这个功能非常类似于文件夹树,其中一个游戏对象包含在另一个游戏对象中。需要指出的是,所有子对象的变换值都是相对于父对象的,父对象称为局部坐标。可以通过脚本访问全局坐标和局部坐标。

一个游戏对象可以有任意数量的子对象,但只有一个父对象。子对象也可以是其他对象的父对象。在层次视图中,您可以很容易地判断一个对象是否是父对象。如果其名称左侧有一个箭头,则它是父对象。

真正的父子层次树,所有带箭头的对象都是父对象。

记住所有的亲子功能都是通过游戏对象的变换组件来执行的,而不是游戏对象本身。

游戏对象-

当您创建脚本并将其附加到

一个游戏对象,这个脚本将在视图面板中作为一个

将显示组件。这是因为当它们被保存时,脚本变成

一个组件。从技术角度来看,脚本是其中的一个组成部分。

有点像编译过的,就像其他组件一样。

脚本中声明的任何公共变量都将在游戏对象中检查。

在可视面板中显示为可编辑或可连接。写剧本的时候

可以直接访问游戏对象类的任意成员。你可以

在这里看到一个游戏对象类的成员列表。若有的话

一个类作为一个组件附加到一个游戏对象上,而你

您可以在脚本中使用成员名称来直接访问该组件。例子

例如,键入transform相当于

gameObject.transform .以前的

GameObject是由编译器自动添加的,除非你想指定一个不同的对象。

使用它来访问当前脚本组件。使用this.gameObject来访问附加了脚本的游戏对象。当然,你可以简单地使用它。

来访问这个游戏对象。从逻辑上讲,键入this.transform与transform相同。如果你想访问一个不是游戏对象成员的组件,你需要使用game object。GetComponent()。

2.使用组件

组件是游戏中一个对象的行为和核心。它们是游戏对象的功能模块。如果你还不明白游戏对象和组件的关系,请参考游戏对象部分。

一个游戏对象包含许多不同的组件。默认情况下。所有游戏对象都包含一个变换组件。这是因为变换代表对象的位置、旋转和缩放。如果没有变换组件,游戏对象将没有位置。尝试创建一个空的游戏对象。点击游戏对象-& gt;创造

空菜单项。选择一个新的游戏对象并查看查看面板。

每个空的游戏对象都有一个转换组件。

您可以使用视图面板来查看游戏附带了哪些组件。

在物体上。但是当添加或删除装配时,请查看该面。

该板将显示当前连接的组件。您可以使用视图面板来更改它。

更改任何组件的属性(包括脚本)。

添加组件可以通过组件菜单添加到当前游戏对象中。

一个组件。尝试将刚体添加到刚刚创建的对象中。选择对象,然后从菜单中选择组件->组件。物理-

& gt刚体.现在,您会发现刚体属性显示在查看面板中。如果在选中对象时按下播放键,你会有惊喜。请注意刚体如何向空对象添加功能。

附加了刚体集合的空对象。

任何数量的组件都可以附加到游戏对象上。一些团体

组件可以与其他组件一起工作。例如,刚体可以

处理任何碰撞对象。刚体穿越Ageia

PhysX物理引擎控制变换,碰撞器允许刚体相互作用。

其他对撞机发生碰撞,相互作用。组件组合的不同示例

孩子是一个粒子系统(粒子

系统).他们使用粒子发射器。

发射器)、粒子动画(粒子

动画师)和粒子渲染器(粒子

渲染器)来创建一组移动粒子。

您可以通过单击查看面板顶部的问号来访问组件。

参考页。

编辑组件的一个重要方面是它的可扩展性。当你给一个对象添加一个组件时,它有不同的可调值或属性,也可以通过游戏中的脚本进行调整。有两种不同类型的属性:值和引用。

下图中,有一个音源(Audio)

Source)空游戏对象的组件。查看面板中所有音频源的值都是默认值。该组件包含一个引用属性和七个值属性。音频剪辑(音频

Clip)是一个引用属性。当此音频源开始播放时,它将尝试播放音频。

Clip属性引用的音频文件。如果没有添加reference属性,将会出现错误,因为不会播放声音。您必须参考视图面板中的音频文件。您可以简单地将音频文件从项目视图拖到引用属性中。

现在,音频剪辑属性中引用了一个音频文件。

一个组件可以包含任何其他类型组件的引用、文件或游戏对象。你只需拖动适当的参考到这个属。

性方面。引用类型非常有用和强大,尤其是在使用脚本时。参考脚本教程。音频片段中剩余的七个都是值属性。您可以通过单击并按Enter键来调整它们。使用键盘输入一个值,然后按Enter键保存。您也可以通过使用option键或右键单击或拖移数字属性来快速滚动这些值。音频片段中的值属性都是数字,但有些属性也可以是字符串。例如,文本网格组件包含一个可以接受字母数字字符的文本属性。有些值可以包含字符,例如文本网格中的文本属性。