C#开发Unity游戏教程之Scene视图与脚本的使用

C#开发Unity游戏教程之Scene视图与脚本的使用

Unity中Scene视图的快捷操作

Scene视图是开发人员开发游戏时,操作最频繁的视图。

由于一旦一个游戏对象被加入到游戏的场景中,就须要首先使用鼠标为这个游戏对象设置出合适的状态。

并且开发人员还须要多角度的观察游戏场景中的各游戏对象。基于以上的原因,Unity提供了非常多快捷操作,支持开发人员对Scene视图所做的各种操作。常见的操作方式有:

  • 直接按下键盘上的Q、W、E、R键。就可以选中Unity左上角,工具栏上的4个button。且button与按键一一相应,省去了开发人员使用鼠标点击的麻烦。
  • 使用鼠标的滚轮,能够控制Scene视图“窗体”与各游戏对象的远近,如图2-14所看到的,且向上滚动靠近,向下滚动远离。

图2-14  使用鼠标的滚轮。控制Scene视图与场景中各游戏对象距离的远近

  • 使用鼠标双击Hierarchy视图上的游戏对象名,场景视图会移动,直到相应的对象处于场景视图的中间,如图2-15所看到的。

    当开发人员在场景中找不到相应的游戏对象时,能够使用这样的方法高速找到。

图2-15  鼠标双击对象名,场景视图速度定位到相应对象。且被显示在场景视图的中央

  • 在场景视图里,按下鼠标中间的button(或滚轮)。鼠标变成了。然后移动鼠标,能够随意移动场景。
  • 如图2-16所看到的,
  • 。其
  • 作用等同于工具栏上的第一个button。
  • 在场景视图里,按下键盘上的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  使用不同的视角查看视图中的游戏对象

Unity中使用脚本

使用本章前面介绍的方法,读者能够让游戏场景中的游戏对象改变位置。或者旋转等等。

可是,光是使用手动的方式。调节各游戏的状态,看起来不像是游戏的风格。

毕竟玩家仅仅想控制一个游戏对象,至于其他的游戏对象。那是电脑须要考虑的事情。没错。为了让游戏对象自己动起来,就仅仅好使用脚本了。本节就先带领读者看看脚本。及其作用效果,而读者无需在意代码的实现细节,这会在后面的章节里解说。

Unity中演示样例效果展示

以下是一个演示样例。它会让场景中的立方体边旋转边移动。并且在開始移动前还会改变自己的大小。是不是非常奇妙?以下是让立方体旋转、移动的脚本的所有代码:

  • 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组件的属性。进而达到目的的。

Unity中脚本的构成

全部脚本中的代码。实际上定义的是一个与脚本同名的类(class)。而类里又定义了变量(variable)和方法(methord)。如图2-22所看到的。

图2-22  脚本的各组成部分

提示:脚本代码中,以双斜杠開始的代码行是凝视。

是为了说明代码的作用而加入的。对脚本本身不产生不论什么影响。

1.类

读者在前面已经见识过游戏对象的组件了。那个时候作者告诉读者。那是一类属性的总称。事实上。组件的本质就是类!

组件与类仅仅是不同环境下,对同一东西的不同的称呼而已。称呼的转换过程是这种:类定义在脚本中,脚本能够加入到游戏对象上,最后以组件的形式成为了游戏对象的一部分,如图2-23所看到的。

图2-23  类、脚本、组件

2.变量

脚本中的变量。是用来存储数据的。读者能够把它看作是容器。事实上。组件下的属性本质上也是变量,相同是同一事物在不同场景下的不同称呼而已,如图2-24所看到的。展开成为组件的脚本,就能够看到其下的属性名与变量名基本一致,由于字母的大写和小写可能有所不同。

图2-24  变量、属性

变量中存储的数据。成为了组件属性默认设置的值。

3.方法

脚本中的方法。用于完毕特定的操作或者任务,比如。本节的演示样例中,让立方体变大、移动和旋转,就是脚本中由方法完毕的任务。如图2-25所看到的。

图2-25  方法的作用

Unity中将脚本赋予游戏对象的方法

在Unity中,将脚本赋予游戏对象的方法有多种。本小节介绍两种最常见的方法,如图2-26所看到的。

  • q  使用鼠标,直接将脚本从Project视图拖动到,Hierarchy视图里指定的游戏对象上。
  • q  先选中Hierarchy视图里指定的游戏对象,Inspector视图会显示此游戏对象的全部组件。使用鼠标。将脚本从Project视图拖动到Inspector视图就可以。

最后通过查看Inspector视图里,是否出现了与脚本同名的组件。就能够验证脚本是否被成功的赋予了游戏对象。

对于本章的游戏演示样例,脚本MyTransform被赋予了Cube对象(名为MyCube)。而在游戏执行的过程中,Cube对象会发生状态的改变。则是由于脚本代码改动了Cube对象上Transform组件的属性,进而实现了改变游戏对象状态的效果。

图2-26  将脚本赋予游戏对象的两种方法

Unity中执行游戏

Unity上方中间的部分。在工具栏的位置处有3个button。如图2-27所看到的,作用依次是执行游戏、中止游戏和单步执行游戏。

读者能够单击相应的button,来决定执行游戏的方式。

图2-27  控制游戏执行的3个工具栏button

小结

本章的内容能够分为三大部分。第一部分是构建游戏场景。读者能够从中了解到游戏场景的操作,以及加入游戏对象的方法;第二部分是改变游戏对象的状态,即游戏对象的位置、朝向和大小,借此了解了Transform组件;第三部分是使用脚本,脚本免去了读者手动改变游戏对象状态的麻烦,也使得项目有了游戏的样子。借此了解了脚本的的各组成部分。即类、变量和方法。以及脚本各组成部分与游戏对象的关系。

本文选自:C#游戏开发高速入门大学霸内部资料。转载请注明出处,尊重技术尊重IT人!

时间: 2024-10-11 23:58:05

C#开发Unity游戏教程之Scene视图与脚本的使用的相关文章

C#开发Unity游戏教程之Unity中方法的参数

C#开发Unity游戏教程之Unity中方法的参数 Unity的方法的参数 出现在脚本中的方法,无论是在定义的时候,还是使用的时候,后面都跟着一对括号“( )”,有意义吗?看起来最多也就是起个快速识别方法的作用吧.既然C#的语法规定方法就应该这么写,肯定是有一定道理的.如果是上升到战略意义的道理,连作者也不是很明白,但是作者知道这对括号里可以添加“参数”. Unity中参数的作用 要说明参数的作用,就必须从方法说起.方法可以处理变量中的数据,进而影响游戏对象的行为逻辑,这是本章前面一直在强调的.

C#开发Unity游戏教程之使用脚本变量

C#开发Unity游戏教程之使用脚本变量 使用脚本变量 本章前面说了那么多关于变量的知识,那么在脚本中要如何编写关于变量的代码,有规章可循吗?答案是有的.本节会依次讲解变量的声明.初始化.赋值和运算. Unity脚本中声明变量 要想在脚本中使用变量,就必须先声明(declare).这就意味着,需要先告诉Unity,有这样一个变量存在,然后才可以在Unity中使用这个变量.那么,该如何将这个变量存在的事实告知Unity呢?答案就是声明.实际上,读者已经在本章见过多次变量的声明了,没错就是图3-11

C#开发Unity游戏教程之判断语句

C#开发Unity游戏教程之判断语句 游戏执行路径的选择--判断 玩家在游戏时,无时无刻不在通过判断做出选择.例如,正是因为玩家做出的选择不同,才导致游戏朝着不同的剧情发展,因此一个玩家可以对一个游戏百玩不厌!既然提到了这一点,借此机会本章就来说明,在脚本中实现游戏为玩家提供更多选择的方法. Unity游戏的执行路径 游戏如此受玩家欢迎的原因,除了优质的画面效果以外,就是游戏的可交互性.也就是说,游戏是可以与玩家互动的,这也是游戏与视频的不同之处.游戏允许玩家在一定程度上控制游戏的执行路径,虽然

C#开发Unity游戏教程之游戏对象的行为逻辑方法

C#开发Unity游戏教程之游戏对象的行为逻辑方法 游戏对象的行为逻辑--方法 方法(method),读者在第1章新建脚本时就见过了,而且在第2章对脚本做整体上的介绍时也介绍过,那么上一章呢,尽管主要内容是变量,但是在章节的最后为了展示游戏效果,也用到了它.现在看来方法真的是无处不在,并且不可或缺.它甚至都可以影响游戏对象的行为逻辑!因此本章终于到了不得不介绍它的时候了. Unity游戏对象的行为逻辑 游戏场景中,有些游戏对象是静止的,例如,树木.山峰.石头等等.而另外一些游戏对象则是运动的,它

C#开发Unity游戏教程之游戏对象的属性变量

C#开发Unity游戏教程之游戏对象的属性变量 Unity游戏对象的属性--变量 通过对上一章的学习,读者应该了解到了,游戏对象上的属性与脚本中的变量,建立联系的方式就是将脚本赋予游戏对象.上一章仅仅是简单的介绍了脚本中的变量,读者一定只是瘾,如今好了.作者将使用一整章的篇幅介绍变量与属性. Unity游戏对象的属性 在Unity中.游戏场景中游戏对象的属性,能够在Inspector视图里查看,想看哪个游戏对象的属性.就使用鼠标选中哪个游戏对象就可以. 比如,要查看游戏场景中Main Camer

C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例

C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例 Unity中循环遍历每个数据,并做出判断 很多时候,游戏在玩家做出判断以后,游戏程序会遍历玩家身上大量的所需数据,然后做出判断,即首先判定玩家是否有权限做出这种选择,然后才决定是否为玩家执行此选择.例如,<仙剑奇侠传>这款游戏,进入剧情"荷叶迷宫时",会要求玩家击碎迷宫里的5尊雕塑,如图5-12所示.但是击碎的前提是,玩家身上必须携带有"锤子".也就是说系统会遍历玩家身上所有的资源,如果有锤

HealthKit开发快速入门教程之HealthKit开发概述HealthKit简介

?HealthKit开发快速入门教程之HealthKit开发概述简介? 2014年6月2日召开的年度开发者大会上,苹果发布了一款新的移动应用平台,可以收集和分析用户的健康数据.该移动应用平台被命名为"Healthkit".本章将主要讲解HealthKit的特点.经典应用以及在开发HealthKit时的准备工作. HealthKit简介 HealthKit就是可以收集和分析用户的健康数据移动应用平台.本节将主要讲解HealthKit的特点.经典应用. HealthKit特点 本小节将主要

HealthKit开发快速入门教程之HealthKit开发概述简介

HealthKit开发快速入门教程之HealthKit开发概述简介 2014年6月2日召开的年度开发者大会上,苹果发布了一款新的移动应用平台,可以收集和分析用户的健康数据.该移动应用平台被命名为“Healthkit”.本章将主要讲解HealthKit的特点.经典应用以及在开发HealthKit时的准备工作. HealthKit简介 HealthKit就是可以收集和分析用户的健康数据移动应用平台.本节将主要讲解HealthKit的特点.经典应用. HealthKit特点 本小节将主要讲解Healt

unity基础开发----unity游戏速度更快的简易检查表

让游戏速度更快的简易检查表 保持顶点数在 200K 下面,针对 PC 时每帧应为 3M,主要取决于目标 GPU. 若使用内置着色器,请在移动 (Mobile) 或未点亮 (Unlit) 的类别中选择.它们对非移动平台相同有效,可是是更复杂的着色器的简化和限制版本号. 每一个场景中不同材质的数量尽可能少 - 不同对象之间尽可能共享相同的材质. 在非移动对象上设置静态 (Static) 属性,同意静态批处理 (static batching) 等内部优化. 切勿在不必要的情况下使用像素灯 - 选择仅