Scene视图是开发者开发游戏时,操做最频繁的视图。由于一旦一个游戏对象被添加到游戏的场景中,就须要首先使用鼠标为这个游戏对象设置出合适的状态。并且开发者还须要多角度的观察游戏场景中的各游戏对象。基于以上的缘由,Unity提供了不少快捷操做,支持开发者对Scene视图所作的各类操做,常见的操做方式有:工具
直接按下键盘上的Q、W、E、R键,便可选中Unity左上角,工具栏上的4个按钮,且按钮与按键一一对应,省去了开发者使用鼠标点击的麻烦。this
使用鼠标的滚轮,能够控制Scene视图“窗口”与各游戏对象的远近,如图2-14所示,且向上滚动靠近,向下滚动远离。spa
图2-14 使用鼠标的滚轮,控制Scene视图与场景中各游戏对象距离的远近orm
使用鼠标双击Hierarchy视图上的游戏对象名,场景视图会移动,直到对应的对象处于场景视图的中间,如图2-15所示。当开发者在场景中找不到对应的游戏对象时,可使用这种方法快速找到。对象
图2-15 鼠标双击对象名,场景视图速度定位到对应对象,且被显示在场景视图的中央教程
在场景视图里,按下鼠标中间的按钮(或滚轮),鼠标变成了,而后移动鼠标,能够任意移动场景。游戏
,游戏开发
如图2-16所示,开发
。其it
做用等同于工具栏上的第一个按钮。
在场景视图里,按下键盘上的Alt键,鼠标就会变成,再按下鼠标的左键拖动,可围绕指定的游戏对象移动。如图2-17所示。
图2-16 任意移动场景视图中的场景 图2-17 绕着场景视图中的对象移动
在场景视图里,按下鼠标的右键,鼠标就会变成眼睛的样子,而后再按下键盘上的“W、S、A、D”键,就能够模拟第一人称在场景中向前、后、左、右移动,移动鼠标至关于转动人物的头部。如图2-18所示。
图1-18 模拟第一人称,在场景中移动 图2-19 场景视图中的Gizmo工具
读者必定注意到,在Scene视图的右上角有个坐标轴的模型,在Unity中它被称为Gizmo,如图2-19所示。使用它能够将Scene视图,迅速切换到预约义的观察视角,具体的操做是单击Gizmo的轴。如图2-20,切换了三个视角来查看Scene视图中的游戏对象。
图2-20 使用不一样的视角查看视图中的游戏对象
使用本章前面介绍的方法,读者可让游戏场景中的游戏对象改变位置,或者旋转等等。可是,光是使用手动的方式,调节各游戏的状态,看起来不像是游戏的风格。毕竟玩家只想控制一个游戏对象,至于其它的游戏对象,那是电脑须要考虑的事情!没错,为了让游戏对象本身动起来,就只好使用脚本了。本节就先带领读者看看脚本,及其做用效果,而读者无需在乎代码的实现细节,这会在后面的章节里讲解。
下面是一个示例,它会让场景中的立方体边旋转边移动,并且在开始移动前还会改变本身的大小!是否是很神奇?下面是让立方体旋转、移动的脚本的所有代码:
01 using UnityEngine;
02 using System.Collections;
03
04 public class MyTransform : MonoBehaviour
05 {
06 public float scaleValue = 1.5f;
07 public float xPosition = 0.1f;
08 public int yRotation = 10;
09 // Use this for initialization
10 void Start ()
11 {
12 transform.localScale = new Vector3(1,scaleValue,1);
13 }
14 // Update is called once per frame
15 void Update ()
16 {
17 transform.Translate ( new Vector3(xPosition,0,0),Space.World);
18 transform.Rotate (Vector3.up * yRotation,Space.World);
19 }
20 }
这个脚本让立方体产生的运动效果如图2-21所示。
图2-21 在Game视图里查看,立方体先改变大小,而后一边移动一边旋转的立方体
读者必定在奇怪,为何脚本能够改变立方体的状态?实际上,它改变立方体状态的方法与咱们改变立方体状态的方法是同样的,没错!它也是经过修改立方体上Transform组件的属性,进而达到目的的!
全部脚本中的代码,实际上定义的是一个与脚本同名的类(class)。而类里又定义了变量(variable)和方法(methord),如图2-22所示。
图2-22 脚本的各组成部分
提示:脚本代码中,以双斜杠开始的代码行是注释。是为了说明代码的做用而添加的,对脚本自己不产生任何影响。
1.类
读者在前面已经见识过游戏对象的组件了,那个时候做者告诉读者,那是一类属性的总称。其实,组件的本质就是类!组件与类只是不一样环境下,对同一东西的不一样的称呼而已。称呼的转换过程是这样的:类定义在脚本中,脚本能够添加到游戏对象上,最后以组件的形式成为了游戏对象的一部分,如图2-23所示。
图2-23 类、脚本、组件
2.变量
脚本中的变量,是用来存储数据的,读者能够把它看做是容器。其实,组件下的属性本质上也是变量,一样是同一事物在不一样场景下的不一样称呼而已,如图2-24所示。展开成为组件的脚本,就能够看到其下的属性名与变量名基本一致,由于字母的大小写可能有所不一样。
图2-24 变量、属性
变量中存储的数据,成为了组件属性默认设置的值。
3.方法
脚本中的方法,用于完成特定的操做或者任务,例如,本节的示例中,让立方体变大、移动和旋转,就是脚本中由方法完成的任务,如图2-25所示。
图2-25 方法的做用
在Unity中,将脚本赋予游戏对象的方法有多种,本小节介绍两种最多见的方法,如图2-26所示。
q 使用鼠标,直接将脚本从Project视图拖动到,Hierarchy视图里指定的游戏对象上;
q 先选中Hierarchy视图里指定的游戏对象,Inspector视图会显示此游戏对象的全部组件,使用鼠标,将脚本从Project视图拖动到Inspector视图便可;
最后经过查看Inspector视图里,是否出现了与脚本同名的组件,就能够验证脚本是否被成功的赋予了游戏对象。
对于本章的游戏示例,脚本MyTransform被赋予了Cube对象(名为MyCube)。而在游戏运行的过程当中,Cube对象会发生状态的改变,则是由于脚本代码修改了Cube对象上Transform组件的属性,进而实现了改变游戏对象状态的效果。
图2-26 将脚本赋予游戏对象的两种方法
Unity上方中间的部分,在工具栏的位置处有3个按钮,如图2-27所示,做用依次是运行游戏、停止游戏和单步运行游戏。读者能够单击对应的按钮,来决定运行游戏的方式。
图2-27 控制游戏运行的3个工具栏按钮
本章的内容能够分为三大部分。第一部分是构建游戏场景,读者能够从中了解到游戏场景的操做,以及添加游戏对象的方法;第二部分是改变游戏对象的状态,即游戏对象的位置、朝向和大小,借此了解了Transform组件;第三部分是使用脚本,脚本免去了读者手动改变游戏对象状态的麻烦,也使得项目有了游戏的样子,借此了解了脚本的的各组成部分,即类、变量和方法,以及脚本各组成部分与游戏对象的关系。
本文选自:C#游戏开发快速入门大学霸内部资料,转载请注明出处,尊重技术尊重IT人!