Unity3d中文脚本使用手册

yarva_3235

贡献于2015-01-20

字数:0 关键词: 游戏开发 手册

    一、  脚本概览  这是一个关于 Unity 内部脚本如何工作的简单概览。  Unity 内部的脚本,是通过附加自定义脚本对象到游戏物体组成的。在脚本对象内部不 同志的函数被特定的事件调用。最常用的列在下面:  Update:  这个函数在渲染一帧之前被调用,这里是大部分游戏行为代码被执行的地方,除了物 理代码。  FixedUpdate:  这个函数在每个物理时间步被调用一次,这是处理基于物理游戏的地方。  在任何函数之外的代码:  在任何函数之外的代码在物体被加载的时候运行,这个可以用来初始化脚本状态。  注意:文档的这个部份假设你是用 Javascript,参考用 C#编写获取如何使用 C#和 Boo 编写脚本的信息。  你也能定义事件句柄,它们的名称都以 On 开始,(例如 OnCollisionEnter),为了查看完 整的预定义事件的列表,参考 MonoBehaviour  文档。    概览:常用操作  大多数游戏物体的操作是通过游戏物体的 Transform 或 Rigidbody 来做的,在行为脚本 内部它们可以分别通过 transform 和 rigidbody 访问,因此如果你想绕着 Y 轴每帧旋转 5 度, 你可以如下写:  function Update(){  transform.Rotate(0,5,0);  }  如果你想向前移动一个物体,你应该如下写:  function Update(){  transform.Translate(0,0,2);  }  概览:跟踪时间  Time 类包含了一个非常重要的类变量,称为 deltaTime,这个变量包含从上一次调用 Update 或 FixedUpdate(根据你是在 Update 函数还是在 FixedUpdate 函数中)到现在的时 间量。  所以对于上面的例子,修改它使这个物体以一个恒定的速度旋转而不依赖于帧率:  function Update(){  transform.Rotate(0,5*Time.deltaTime,0);  }  移动物体:  function Update(){  transform. Translate (0, ,0,2*Time.deltaTime);  }  如果你加或是减一个每帧改变的值,你应该将它与 Time.deltaTime 相乘。当你乘以 Time.deltaTime 时,你实际的表达:我想以 10 米/秒移动这个物体不是 10 米/帧。这不仅仅 是因为你的游戏将独立于帧而运行,同时也是因为运动的单位容易理解。(  米/秒)  另一个例子,如果你想随着时间增加光照的范围。下面的表达式,以 2 单位/秒改变半   径。      function Update (){  light.range += 2.0 * Time.deltaTime;  }  当通过力处理刚体的时候,你通常不必用 Time.deltaTime,因为引擎已经为你考虑到了 这一点。  概览:访问其他组件  组件被附加到游戏物体,附加Renderer到游戏物体使它在场景中渲染,附加一个Camera 使它变为相机物体,所有的脚本都是组件,因为它们能被附加到游戏物体。  最常用的组件可以作为简单成员变量访问:  Component             可如下访问  Transform             transform  Rigidbody             rigidbody  Renderer              renderer  Camera                camera (only on camera objects)  Light                 light (only on light objects)  Animation             animation  Collider              collider  …等等。  对于完整的预定义成员变量的列表。查看 Component,Behaviour 和 MonnoBehaviour 类文档。如果游戏物体没有你想取的相同类型的组件,上面的变量将被设置为 null。  任何附加到一个游戏物体的组件或脚本都可以通过 GetComponent 访问。  transform.Translate(0,3,0);  //等同于  GetComponent(Transform).Translate(0, 1, 0);  注意 transfom 和 Transform 之间大小写的区别,前者是变量(小写),后者是类或脚本 名称(大写)。大小写不同使你能够从类和脚本名中区分变量。  应用我们所学,你可以使用 GetComponent 找到任何附加在同一游戏物体上的脚本和组 件,请注意要使用下面的例子能够工作,你需要有一个名为 OtherScript 的脚本,其中包含 一个 DoSomething 函数。OtherScript 脚本必须与下面的脚本附加到相同的物体上。  //这个在同一游戏物体桑找到名为 OtherScript 的脚本  //并调用它上加的 DoSomething  function Update(){  otherScript = GetComponent(OtherScript);  otherScript.DoSomething();  }  概览:访问其它游戏物体  大多数高级的代码不仅需要操作一个物体,Unity 脚本接口有各种方法来找到并访问其 他游戏物体和组件。在下面,我们假定有个一名为 OtherScript,js 的脚本附加到场景的游戏 物体上。  var foo = 5;  function DoSomething ( param : String) {  print(param + " with foo: " + f oo);  }  1.通过检视面板赋值引用      你可以通过检视面板赋值变量到任何物体   //变换拖动到 target 的物体  var target : Transform;  function Update ()  {  target.Translate(0, 1, 0);  }  你也可以在检视面板中公开到其他物体的引用,下面你可以拖动一个包含的游戏物体 到检视面板中的 target 槽。  //设置在检视面板中赋值的 target 变量上的 foo,调用 DoSomething  var target : OtherScript;  function Update ()  {  //设置 target 物体的 foo 变量  target.foo = 2;  //  调用 target 上的 DoSomething  target.DoSomething("Hello");  }  2.通过物体层次定位  对于一个已经存在的物体,可以通过游戏物体的 Transform 组件来找到子和父物体;  //找到脚本所附加的  //游戏物体的子“Hand”  transform.Find("Hand").Translate(0, 1, 0);  一旦在层次视图中找到这个变换,你可以使用 GetComponent 来获取其他脚本,  //找到名为“Hand”的子  //在附加到它上面的 OtherScript 中,设置 foo 为 2;  transform.Find("Hand").Translate(0, 1, 0);  //找到名为“Hand”的子  //然后应用一个力到附加在 hand 上的刚体  transform.Find("Hand").GetComponent(OtherScript).DoSomething("Hello");  //  找到名为“Hand”的了  //  然后应用一个力到附加在 hand 上的刚体  transform.Find("Hand").rigidbody.AddForce(0, 10, 0);  你可以循环所有的子,  //变换的所有子向上移动 10 个单位  for (var child : Transform in transform)  {  child.Translate(0, 1, 0);  }  参考 Transform 类文档获取更多信息。  3.根据名称或标签定位.  你可以使用 GameObject.FindWithTag 和 GameObject.FindGameObjectsWithTag 搜索具 有特定标签的游戏物体,使用 GameObject.Find 根据名称查找物体。  function Start ()      {  //  按照名称  var go = GameObject.Find("SomeGuy");  go.transform.Translate(0, 1, 0);  //  按照标签     var player = GameObject.FindWithTag("Player");  player.transform.Translate(0, 1, 0);  }  你可以在结果上使用 GetComponent,在找到的游戏物体上得到任何脚本或组件。  function Start ()  {  //  按名称  var go = GameObject.Find("SomeGuy");  go.GetComponent(OtherScript).DoSomething();    //  按标签  var player = GameObject.FindWithTag("Player");  player.GetComponent(OtherScript).DoSomething();  }  一些特殊的物体有快捷方式,如主相机使用 Camera.main。  4.作为参数传递  一些事件消息在事件包含详细信息。例如,触发器事件传递碰撞物体的 Collider 组件到 处理函数。  OnTriggerStay 给我们一个到碰撞器的引用。从这个碰撞器我们可以获取附加到其上的 刚体。  function OnT riggerStay( other : Collider ) {  //  如果另一个碰撞器也有一个刚体  //  应用一个力到它上面  if (other.rigidbody) {  other.rigidbody.AddForce(0, 2, 0);  }  }  或者我们可以通过碰撞器获取附加在同一个物体上的任何组件。  function OnTriggerStay( other : Collider ) {  //  如果另一个碰撞器附加了 OtherScript  //  调用它上面的 DoSomething  //  大多数时候碰撞器不会附加脚本  //  所以我们需要首先检查以避免 null 引用异常  if (other.GetComponent(OtherScript)) {  other.GetComponent(OtherScript).DoSomething();  }  }  注意通过上述例子中的 other 变量,你可以访问碰撞物体中的任何组件。      5.一种类型的所有脚本  使用 Object.FindObjectsOfType 找到所有具有相同类或脚本名称的物体,或者使用 Object.FindObjectOfType.找到这个类型的第一个物体。  function Start ()  {  //  找到场景中附加了 OtherScript 的任意一个游戏物体  var other : OtherScript = FindObjectOfType(OtherScript);  other.DoSomething();  }  概览:向量  Unity 使用 Vector3 类同一表示全体 3D 向量,3D 向量的不同组件可以通过想 x,y 和 z 成员变量访问。  var aPosition : Vector3;  aPosition.x = 1;  aPosition.y = 1;  aPosition.z = 1;  你也能够使用 Vector3 构造函数来同时初始化所有组件。  var aPosition = Vector3(1, 1, 1);  Vector3 也定义了一些常用的变量值。  var dir ection = Vector3.up; //  与  Vector3(0, 1, 0);相同  单个向量上的操作可以使用下面的方式访问:  someVector.Normalize();  使用多个向量的操作可以使用 Vector3 类的数;  theDistance = Vector3.Distance(oneVector, otherVector);  (注意你必须在函数名之前写 Vector3 来告诉 JavaScript 在哪里找到这个函数,这适用 于所有类函数)  你也可以使用普通数学操作来操纵向量。   combined = vector1 + vector2;  查看 Vector3 类文档获取完整操纵和可用属性的列表。  概览:成员变量  &  全局变量变量  定义在任何函数之外的变量是一个成员变量。在 Unity 中这个变量可以通过检视面板来 访问,任何保存在成员变量中的值也可以自动随工程保存。  var memberVariable = 0.0;  上面的变量将在检视面板中显示为名为"Member Variable"的数值属性。  如果你设置变量的类型为一个组件类型(例如 Transform, Rigidbody, Collider,任何脚本 名称,等等)然后你可以在检视面板中通过拖动一个游戏物体来设置它们。  var enemy : Transform;  function Update()  {  if ( Vector3.Distance( enemy.position, transform.position ) < 10 );  print("I sense the enemy is near!");  }  }  你也可以创建私有成员变量。私有成员变量可以用来存储那些在该脚本之外不可见的     状态。私有成员变量不会被保存到磁盘并且在检视面板中不能编辑。当它被设置为调试模 式时,它们在检视面板中可见。这允许你就像一个实时更新的调试器一样使用私有变量。  private var lastCollider : Collider;  function OnCollisionEnter( collisionInfo : Collision ) {  lastCollider = collisionInfo.other;  }  全局变量  你也可以使用 static 关键字创建全局变量  这创造了一个全局变量,名为 someGlobal  // 'TheScriptName.js'中的一个静态变量  static var someGlobal = 5;  //  你可以在脚本内部像普通变量一样访问它  print(someGlobal);  someGlobal = 1;  为了从另一个脚本访问它,你需要使用这个脚本的名称加上一个点和全局变量名。  print(TheScriptName.someGlobal);  TheScriptName.someGlobal = 10;  概览:实例化  实例化,复制一个物体。包含所有附加的脚本和整个层次。它以你期望的方式保持引 用。到外部物体引用的克隆层次将保持完好,在克隆层次上到物体的引用映射到克隆物体。  实例化是难以置信的快和非常有用的。因为最大化地使用它是必要的。  例如,  这里是一个小的脚本,当附加到一个带有碰撞器的刚体上时将销毁它自己并实 例化一个爆炸物体。  var explosion : Transform;  //  当碰撞发生时销毁我们自己  //  并生成给一个爆炸预设  function OnCollisionEnter (){  Destroy (gameObject);  var  theClonedExplosion : Transform;   theClonedExplosion = Instantiate(explosion, transform.position, transform.rotation);   }  实例化通常与预设一起使用  概览:Coroutines & Yield  在编写游戏代码的时候,常常需要处理一系列事件。这可能导致像下面的代码。  private var state = 0;  function Update()  {  if (state == 0) {  //  做步骤 0  state = 1;  return;  }  if (state == 1) {  //  做步骤 1      state = 2;  return;  }  // …  }  更方便的是使用 yield 语句。yield 语句是一个特殊类型的返回,这个确保在下次调用时 该函数继续从该 yield 语句之后执行。  while(true) {  //  做步骤 0  yield; //等待一帧  //  做步骤 1  yield; //等待一帧  // ...  }  你也可以传递特定值给 yield 语句来延迟 Update 函数的执行,直到一个特定的事件发 生。  //  做一些事情  yield WaitForSeconds(5.0); //等待 5 秒  //做更多事情…  可以叠加和连接 coroutines。  这个例子执行 Do,在调用之后立即继续。  Do ();  print ("This is printed immediately");  function Do ()  {  print("Do now");  yield WaitForSeconds (2);  print("Do 2 seconds later");  }  这个例子将执行 Do 并等待直到它完成,才继续执行自己。  //链接 coroutine  yield StartCoroutine("Do");  print("Also after 2 seconds");  print ("This is after the Do coroutine has finished execution");  function Do ()  {  print("Do now");  yield WaitForSeconds (2);  print("Do 2 seconds later");   }  任何事件处理句柄都可以是一个 coroutine  注意你不能在 Update 或 FixedUpdate 内使用 yield,但是你可以使用 StartCoroutine 来 开始一个函数。  参考 YieldInstruction,  WaitForSeconds,  WaitForFixedUpdate,  Coroutine  and      MonoBehaviour.StartCoroutine 获取更多使用 yield 的信息。  概览:用 C#编写脚本  除了语法,使用 C#或者 Boo 编写脚本还有一些不同。最需要注意的是:  1.从 MonoBehaviour 继承  所有的行为脚本必须从 MonoBehaviour 继承(直接或间接)。在 Javascript 中这自动完 成,但是必须在 C#或 Boo 脚本中显示申明。如果你在 Unity 内部使用 Asset ‐>  Create ‐>  C  Sharp/Boo Script 菜单创建脚本,创建模板已经包含了必需的定义。  public class NewBehaviourScript : MonoBehaviour {...} // C#  class NewBehaviourScript (MonoBehaviour): ... # Boo  2.使用 Awake 或 Start 函数来初始化  Javascript 中放置在函数之外的代码,在 C#或 Boo 中要放置在 Awake 或 Start 中。  Awake 和 Start 的不同是 Awake 在场景被加载时候运行,而 Start 在第一次调用 Update 或 FixedUpdate 函数之前被调用,所有 Awake 函数在任何 Start 函数调用之前被调用。  3.类名必须与文件名相同  Javascript 中,类名被隐式地设置为脚本的文件名(不包含文件扩展名)。在 c#和 Boo 中必须手工做。  4.在 C#中 Coroutines 有不同语法。  Coroutines必有一个IEnumerator返回类型,并且yield使用yield return…  而不是yield…  using System.Collections;  using UnityEngine;  public class NewBehaviourScript : MonoBehaviour {  // C# coroutine  IEnumerator SomeCoroutine ()  {  //  等一帧  yield return 0;  //等两秒  yield return new WaitForSeconds (2);  }  }  5.不要使用命名空间  目前 Unity 还不支持将代码放置在一个命名空间中,这个需要将会出在未来的版本中。  6.只有序列化的成员变量会显示在检视面板中  私有和保护成员变量只在专家模式中显示,属性不被序列化或显示在检视面板中。  7.避免使用构造函数  不要在构造函数中初始化任何变量,使用 Awake 或 Start 实现这个目的。即使是在编辑 模式中 Unity 也自动调用构造函数,这通常发生在一个脚本被编译之后,因为需要调用构造 函数来取向一个脚本的默认值。构造函数不仅会在无法预料的时刻被调用,它也会为预设 或未激活的游戏物体调用。   单件模式使用构造函数可能会导致严重的后果,带来类似随机 null 引用异常。  因此如果你想实现,如,一个单件模式,不要使用构造函数,而是使用 Awake。其实 上,没有理由一定要在继续自 MononBehaviour 类的构造函数中写任何代码。  概览:最重要的类  Javascript 中可访问的全局函数或 C#中的基类      移动/旋转物体  动画系统  刚体  FPS 或第二人称角色控制器  概览:性能优化  1.使用静态类型  在使用 Javascript 时最重要的优化是使用静态类型而不是动态类型,Unity 使用一种叫 做类型推理的技术来自自动转换 Javascript 为静态类型编码而不需要你做任何工作。  var foo=5;  在上面的例子里 foo 会自动被推断为一个整型值。因此,Unity 可能使用大量的编译时 间来优化。而不使用耗时的动态名称变量查找等。这就是为什么 Unity 比其他在 JavaScript 的实现平均快 20 倍的原因之一。  唯一的问题是,有时并非一切都可以做类型推断。Unity 将会为这些变量重新使用动态 类型。通过回到动态类型,编写 JavaScript 代码很简单。但是这也使得代码运行速度较慢。  让我们看一些例子:  function Start ()  {  var foo = GetComponent(MyScript);  foo.DoSomething();  }  这里 foo 将是动态类型,因此调用 DoSomething 函数将使用较长时间,因为 foo 的类型 是未知的,它必须找出它是否支持 DoSomething 函数,如果支持,调用它。  function Start ()  {  var foo : MyScript = GetComponent(MyScript);  foo.DoSomething();  }  这里我们强制 foo 为指定类型,你将获得更好的性能。  2.使用#pragma strict  当然现在问题是,你通常没有意识到你在使用动态类型。#pragma  strict 解决了这个! 简单的在脚本顶部添加#pragma strict。然后,unity 将在脚本中禁用动态类型,强制使用静 态类型,如果一个类型未知。Unity 将报告编译错误。那么在这种情况下 foo 将在编译时产 生一个错误:  #pragma strict  function Start ()  {  var foo = GetComponent(MyScript);  foo.DoSomething();  }  3.缓存组件查找  另一个优化是组件缓存。不幸的是该优化需要一点编码,并且不一定是值得的,但是 如   果你的脚本是真的用了很长时间了,你需要把最后一点表现出来,这是一个很好的优 化。      当你访问一个组件通过 GetComponent 或访问变量,Unity 会通过游戏对象找到正确的 组件。这一次可以很容易地通过缓存保存在一个私有变量里引用该组件。  简单地把这个:  function Update ()   {  transform.Translate(0, 0, 5);  }  变成:  private var myTransform : Transform;  function Awake ()  {  myTransform = transform;  }  function Update ()  {  myTransform.Translate(0, 0, 5);  }  后者的代码将运行快得多,因为 Unity 没有找到变换在每一帧游戏组件中的对象。这同 样适用于脚本组件,在你使用 GetComponent 代替变换或者其它的东西。  4.使用内置数组  内置数组的速度非常快,所以请使用它们。  而整列或者数组类更容易使用,因为你可以很容易地添加元素,他们几乎没有相同的 速度。内置数组有一个固定的尺寸,但大多数时候你事先知道了最大的大小在可以只填写 了以后。关于内置数组最好的事情是,他们直接嵌入在一个结构紧凑的缓冲区的数据类型 没有任何额外的类型信息或其他开销。因此,遍历是非常容易的,作为一切缓存在内存中 的线性关系。  private var positions : Vector3[];  function Awake ()  {  positions = new Vector3[100];  for (var i=0;i<100;i++)  positions[i] = Vector3.zero;  }  5.如果你不需要就不要调用函数  最简单的和所有优化最好的是少工作量的执行。例如,当一个敌人很远最完美的时间 就是敌人入睡时可以接受。直到玩家靠近时什么都没有做。这是种缓慢的处理方式的情况:  function Update ()  {  //  早期进行如果玩家实在是太遥远。  if (Vector3.Distance(transform.position, target.position) > 100)  return;  perform real work work...  }  这不是一个好主意,因为 Unity 必须调用更新功能,而你正在执行工作的每一个帧。一     个比较好的解决办法是禁用行为直到玩家靠近。有 3 种方法来做到这一点:  1.使用 OnBecameVisible 和 OnBecameInvisible。这些回调都是绑到渲染系统的。只要任 何相机可以看到物体,OnBecameVisible 将被调用,当没有相机看到任何一个, OnBecameInvisible 将被调用。这种方法在很多情况下非常有用,但通常在 AI 中并不是特别 有用,因为只要你把相机离开他们敌人将不   可用。  function OnBecameVisible () {  enabled = true;  }  function OnBecameInvisible ()  {  enabled = false;  }  2.使用触发器。一个简单的球形触发器会工作的非常好。一旦你离开这个影响球你将得 到 OnTriggerEnter/Exit 调用。  function OnTriggerEnter (c : Collider)  {  if (c.CompareTag("Player"))  enabled = true;  }  function OnTriggerExit (c : Collider)  {  if (c.CompareTag("Player"))  enabled = fa lse;  }  3.使用协同程序。Update 调用的问题是它们每帧中都发生。很可能会只需要每 5 秒检 检查一次到玩家的距离。这应该会节省大量的处理周期。  概览:脚本编译(高级)  Unity 编译所有的脚本为.NET dll 文件,.dll 将在运行时编译执行。  这允许脚本以惊人的速度执行。这比传统的 javascript 快约 20 倍。比原始的 C++代码慢 大约 50%。在保存的时候,Unity 将花费一点时间来编译所有脚本,如果 Unity 还在编译。 你可以在 Unity 主窗口的右下角看到一个小的旋转进度图标。  脚本编译在 4 个步骤中执行:  1.所有在"Standard Assets", "Pro Standard Assets"  或  "Plugins"的脚本被首先编译。  在这些文件夹之内的脚本不能直接访问这些文件夹之外脚本。  不能直接引用或它的  变量,但是可以使用 GameObject.SentMessage 与它们通信。  2.所有在"Standard Assets/Editor", "Pro Standard Assets/Editor"  或  "Plugins/Editor"的脚 本被首先编译。  如果你想使用 UnityEditor 命名空间你必须放置你的脚本在这些文件夹中,例如添加菜 单项或自定义的向导,你都需要放置脚本到这些文件夹。  这些脚本可以访问前一组中的脚本。  3.然后所有在"Editor"中的脚本被编译。  如果你想使用 UnityEditor 命名空间你必须放置你的脚本在这些文件夹中。例如添加菜 单单项或自定义的向导,你都需要放置脚本到这些文件夹。      这些脚本可以访问所有前面组中的脚本,然而它们不能访问后面组中的脚本。  这可能会是一个问题,当编写编辑器代码编辑那些在后面组中的脚本时。有两个解决 方法:1、移动其他脚本到"Plugins"文件夹  2、利用 JavaScript 的动态类型,在 javascript 中 你不需要知道类的类型。在使用 GetComponent 时你可以使用字符串而不是类型。你也可以 使用 SendMessage,它使用一个字符串。  4.所有其他的脚本被最后编译  所有那些没有在上面文件夹中的脚本被最后编译。  所有在这里编译的脚本可以访问第一个组中的所有脚本("Standard Assets","Pro   Standard Assets" or "Plugins")。这允许你让不同的脚本语言互操作。例如,如果你想创 建一个 JavaScript。它使用一个 C#脚本;放置 C#脚本到"Standard Assets"文件夹并且 JavaScript 放置在"Standard Assets"文件夹之外。现在 JavaScript 可以直接引用 c#脚本。  放置在第一个组中的脚本,将需要较长的编译时间,因为当他们被编译后,第三组需 要被重新编译。因此如果你想减少编译时间,移动那些不常改变  的到第一组。经常改变的 到第四组。   二、  运行时类  AnimationCurve  类  动画曲线,在给定的时间添加关键帧并确定曲线。  变量  ◆  var keys : Keyframe[]  描述:定义在动画曲线中的所有键。这让你从数组中清理,添加或移除键。  如果键没有按照时间顺序,它们会在赋值的时候自动排序。  ◆  var  length : int  描述:曲线中键的数量(只读)。  ◆  var preWrapMode : WrapMode  描述:第一帧之前动画的行为。  ◆  var this[index : int] : Keyframe  描述:取向索引为 index 的键(只读)。  构造函数  ◆  static function AnimationCurve(params keys : Keyframe[]) : AnimationCurve  描述:从任意数量的关键帧创建一个动画曲线。  该函数从可变数量的 Keyframe 参数创建一个曲线,如果你想从一个关键帧数组中创建 一个曲线,创建一个空的曲线并指定 keys 属性。  //一个慢退慢出的动画曲线(切线都是平的)。  var curve = new AnimationCurve(Keyframe(0, 0), Keyframe(1, 1);  function Update ()  {  transform.position.x = Ti me.time;  transform.position.y = curve.Evaluate(Time.time);  }  ◆  static function AnimationCurve () : AnimationCurve  描述:创建一个空的动画曲线  函数  ◆  function AddKey (time : float, value : float) : int      描述:添加一个新的键到曲线。  平滑切线将被自动为该键的计算,返回该键的索引,如果因为在同一时间上已经有另 一个关键帧而不能添加键,将返回‐1。  ◆  function AddKey (key : Keyframe) : int  描述:添加一个新的键到曲线。  返回该键的索引,如果因为在同一时间上已经有另一个关键帧而不能添加键,将返回‐1。  ◆  function Evaluate (time : float) : float  描述:该动画曲线在 time 的值。  ◆  function MoveKey (index : int, key : Keyframe) : int  描述:移除 index 处的关键帧并插入键。  如果一个关键帧已经存在于 key‐time,老的关键帧位置时间 key[index].time/将被用来 替换,这对于在一个曲线编辑器中拖动关键帧是一个理想的行为,移动它后返回关键帧的 索引。  ◆  function RemoveKey (index : int) : vo id  描述:移除一个键  ◆  function SmoothTangents (index : int, weight : float) : void  描述:平滑位于 index 处的关键帧的进出切线。  权值为 0 时平均切线。  类方法  ◆  static  function  EaseInOut  (timeStart  :  float,  valueStart  :  float,  timeEnd  :  float,  valueEnd : float) : AnimationCurve  描述:一个渐进渐出的曲线,开始于 timeStart,valueStart 并结束于 timeEnd, valueEnd.  ◆  static function Linear (timeStart : float, valueStart : float, timeEnd : floa t, valueEnd :  float) : AnimationCurve  描述:一个直线,开始于 timeStart,valueStart 并结束于 timeEnd, valueEnd.  AnimationEvent  类  AnimationEvent 类似于 SendMessage 让你调用一个脚本函数,这个脚本是动画播放的 一部分。   变量  ◆  var animationState : AnimationState   描述:引发这个事件的动画状态。  当这个方法在动画事件回调之外被调用用时返回 null。  ◆  var date:string  描述:存储在动画剪辑中的字符串数据并将被发送到动画事件。  ◆  var functionName : string  描述:被调用的函数的名称  这与调用 gameObject.SendMessage(animationEvent.functionName,animationEvent) 相 同;  ◆  var messageOptions  :SendMessageOptions  描述:如果选项被设置为 SendMessageOptions.RequireReceiver(缺省),当消息没有被 任何组件接收时将打印一个错误消息。  ◆  var time:float  描述:该事件被引发的时间。      构造函数  ◆  static function AnimationEvent () : AnimationEvent  描述:创建一个新的动画事件  AnimationState  类  AnimationState 完全控制动画混合。  在大多数情况下 Animation 接口就足够了,并且更容易使用。如果你需要完全控制动画 播放过程中的混合时,使用 AnimationState。  当动画播放时,AnimationState 允许你修改速度,权值。时间和层。也可以设置动画合 成和 wrapMode  动画  变量  ◆  var blendMode : AnimationBlendMode  描述:使用哪个混合模式?  //  设置 leanLeft 动画为附加混合  animation["leanLeft"].blendMode = AnimationBlendMode.Additive;  ◆  var clip  :AnimationClip   描述:该动画状态播放的剪辑。  //  打印动画剪辑的帧频到控制台  print(animation[“walk”]clio.frameRate);  ◆  var enabled : bool  描述:启用/禁用动画  对于需要考虑任何影响的动画,权值需要设置成为一个大于零的值。如果动画被禁用, 时间将暂停直到动画再次启用。  //  启用 walk 循环  animation["Walk"].enabled = true;  animation["Walk"].weight = 1.0;  ◆  var layer : int  描述:动画的层。在计算混合权值时,位于较高层的动画将首先获得它们的权值。  只有较高层的动画没有使用完全全部权值时,较低层的动画才能接收混合权值。  //  放置 walk 和 run 动画在层 1  animation["Walk"].layer = 1;  animation["Run"].layer = 1;  ◆  var length : float  描述:动画剪辑的长度,以秒计。  //  打印 Walk 动画的长度  print (animation["Walk"].length);  ◆  var name  :string  描述:动画的名称。  ◆  var normalizedSpeed : float  描述:归一化播放速度。  这最常用于混合两个动画时同步播放速度。在多数情况下使用 animation.SyncLayer 是 更容易也更好  //  同步 run 和 walk 速度      animation["Run"].normalizedSpeed = animation["Walk"].speed;  ◆  var normalizedTime : float  描述:动画的当前归一化时间。  1 为动画的末端。  0.5 为动画的中部。  //  快进到动画的中部  animation["Walk"].normalizedTime = 0.5;  ◆  var speed : float  描述:动画的播放速度。1 为正常播放速度。  负的播放速度将回放动画。  //  向后走  animation["Walk"].speed = ‐1.0;  //  以双倍速度行走  animation["Walk"].speed = 2;  ◆  var time  :float  描述:动画的当前时间  如果时间大于长度它将按照 wrapMode 回绕。该值可以大于动画的长度。看这种情况 下播放模式将在采样前重映射时间。这个值从 0 到无穷。  //  回退 walk 动画  animation["Walk"].time = 0.0;  ◆  var  weight : float  描述:动画的权值  //  设置 walk 动画的混合权值为 0.5  animation["Walk"].weight = 0.5;  ◆  var wrapMode : WrapMode  描述:动画的回绕模式  默认的 wrapMode 被初始化为在 Animation 组件中设置的回绕模式值。  //  设置 walk 动画回绕模式为循环  animation["Walk"].wrapMode = WrapMode.Loop;  函数  ◆  function AddMixingTransform (mix : Transform, recursive : bool = true) : void  描述:添加应该被动画的变换。这允许你缩减需要创建的动画数量。  例如你可能有一个挥手的动画。你可能想在一个空闲角色或行走的角色上播放挥手动 画。那么你需要为空闲和行走分别创建挥手动画。运用合成挥手动画,它将由肩膀完全控 制。但是下半身不会受它的影响,继续播放空闲或行走动画。因此你只需要一个挥手动画。  如果 recursive 为真,所有 mix 变换的子也都将被动画。如果你不调用 AddMixingTransform,所有动画曲线将被使用。  //  使用路径添加混合  var shoulder : Transform;  animation["wave_hand"].AddMixingTransform(shoulder);  function Start ()  {  //使用路径添加混合变换  var mixTransform = transform.Find("root/upper_body/left_shoulder");  animation["wave_hand"].AddMixingTransform(mixTransform);      }  Application  类  访问应用程序的运行时数据。  这个类包含静态的方法来查找相关的信息并控制运行时数据。  类变量  ◆  static var absoluteURL : string  描述:到 web 播放器数据文件夹的绝对路径(只读)。  Application.absoluteURL  和 Application.srcValue 允许你检测 unityWeb 数据文件是否被 移动或链接接到其他位置。你也许想保护这两者来防止盗用数据文件的行为。   //  检测你的数据文件是否被移动到其他的服务器  //  或是被链接到其他地方  function Start ()  {  var isPirated = false;  if  (Application.platform  ==  RuntimePlatform.WindowsWebPlayer  ||Application.platform  == RuntimePlatform.OSXWebPlayer)  {  if (Application.srcValue != "game.unity3d")  isPirated = true;  if  (String.Compare  (Application.absoluteURL,http://www.website.com/Game/game.unity3d,true)!=0)  isPirated = tru e;  if (isPirated)  print("Pirated web player");  }  }  ◆  static var dataPath : string  描述:包含游戏数据文件夹的路径(只读)。  这个值依赖于运行的平台:  Unity  编辑器:     <工程文件夹的路径>/Assets  Mac 播放器:       <到播发器应用的路径>/Contents  Win 播放器:       <  包含可执行播发器的文件夹的路径>\Data  Dasboard 窗口:    < dashboard widget bundle 的路径>  Web 播放器:       到播放器数据文件夹的绝对路径(没有实际的数据文件名称)  //  打印到数据文件夹的路径  Print(Application.dataPath);  ◆  static var isEditor : bool  描述:是在 Unity 编辑器内运行?(只读)  如果游戏从 Unity 编辑器中运行,返回真;如果从其他部署目标运行返回假。  if (Application.isEditor)  {  print("We are running this from inside of the editor!");  }      ◆  static var isLoadingLevel : bool  描述:正在加载某些关卡?(只读)  LoadLevel  和  LoadLevelAdditive 不会立即发生  一个新的关卡在当前游戏帧之后被加 载。如果关卡加载所请求的帧已经完成 isLoadingLevel 返回 true。  参见:LoadLevel,LoadLevelAdditive  ◆  static var isPlaying : bool  描述:在任何类型的播放器中时返回真(只读)。  在 Unity 编辑器中,如果处于播放模式时返回真。  if (Application.isPlaying)  {  print("In player or playmode");  }  ◆  static var levelCount : int  描述:可用的总关卡数(只读)。   //  加载一个随机的关卡  Application.LoadLevel (Random.Range(0, Application.levelCount‐1));  ◆  static var loadedLevel : int  描述:最后一个被加载的关卡的索引(只读)。  print (Application.loadedLevel);  ◆  static var loadedLevelName : string  描述:最后一个被加载的关卡的名称(只读)。  print (Application.loadedLevelName);  ◆  static var platform : RuntimePlatform  描述:返回游戏运行的平台(只读)。  如果你要做一些平台相关的操作使用这个属性。参见:RuntimePlatform  function Start ()  {  if (Application.platform == RuntimePlatform.WindowsPlayer)  print ("Do something special here!");  }  ◆  static var runInBackground : bool  描述:应用程序在后太时是否应该被运行?  默认为假(当程序在后台时暂停)。  //  让游戏运行,即使是在后台  Application.runInBackground = true;  ◆  static var srcValue : string  描述:相对于 html 文件的 web 播放器数据文件的路径(只读)。  这是被写到 html 文件中的路径,它是作为 object 的 src 参数和 cmbed 标签。因此如果 它是绝对 url,srcvalue 将含有绝对路径。  Application.absoluteURL  和  Application.srcValue 允许你检测你的 unityWeb 数据文件是 否被移动或链接到其他位置。你也许想保护这两者来阻止盗用数据文件的行为。  //  检测你的数据文件是否被移到其他的服务器  //  或是被链接到其他地方  function Start ()      {  Var isPirated = false;  if  (Application.platform  ==  RuntimePlatform.WindowsWebPlayer  ||Application.platform  == RuntimePlatform.OSXWebPlayer)  {  if (Application.srcValue != "game.unity3d")  isPirated = true;  if  (String.Compare  (Application.absoluteURL,"http://www.website.com/Game/game.unity3d",true)!= 0)  isPirated = true;  if (isPirated)  print("Pirated web player");  }  }  ◆  static var streamedBytes : int  描述:我们从主 Unityweb 流中下载了多少字节(只读)。  在 web 播放器中这将返回到目前为止已经下载的压缩字节数。在独立模式或编辑器中   这个总是返回零。  参见:GetStreamProgressForLevel 函数  ◆  static var targetFrameRate : int  描述:命令游戏尝试以一个特定的帧率渲染。  设置 targetFrameRate 为‐1(默认)使独立版游戏尽可能快的渲染,并且 web 播放器游 戏以 50‐60 帧/秒渲染,取决于平台。  注意设置 targetFrameRate 不会保证帧率,会因为平台的不同而波动,或者因为计算机 太慢而不能取得这个帧率。  在编辑器中 targetFrameRate 被忽略。  ◆  static var unityVersion : string  描述:用于播放内容的 Unity 运行时版本。  类方法  ◆  static function CancelQuit () : void  描述:取消退出。这可以用来在退出游戏的时候显示一个退出画面。  这个函数只工作在播发器中,在 web 播放器或编辑器中不做任何事。  //  延迟 2 秒退出。  //  在这段时间内加载退出画面  var showSplashTimeout = 2.0;  private var allowQuitting = false;  function Awake () {  //  需要在多个关卡中使用的游戏物体  DontDestroyOnLoad (this);  }  function OnApplicationQuit () {  //  如果我们还没有加载到最后的退出画面  if (Application.loadedLevelName.ToLower()!= "finalsplash")  StartCoroutine("DelayedQuit");      // Don't allow the user to exit until we got permission in  if (!allowQuitting)  Application.CancelQuit();  }  function DelayedQuit ()  {  Application.LoadLevel("finalsplash");  //  等待 showSplashTimecout  yield WaitForSeconds(showSplashTimeout);  //  然后退出  allowQuitting = true;  Application.Quit();  }  ◆  static function CanStreamedLevelBeLoaded(levelIndex : int) : bool  描述:可以加载流式关卡了吗?  参见:GetStreamProgressForLevel 函数。     ◆  static function CanStreamedLevelBeLoaded(levelName : string) : bool  描述:可以加载流式关卡了吗?  参见:GetStreamProgressForLevel 函数。  ◆  static function CaptureScreenshot(filename : string) : void  描述:截取屏幕为 PNG 文件放置在路径 filename。  如果文件已经存在,它将被覆盖。如果在 web 播放器或者 Dashboard 窗口中使用该函 数,它将不做任何事情。  function OnMouseDown () {  Application.CaptureScreenshot("Screenshot.png");  }  ◆  static function ExternalCall(functionName:string,params args:object[]):void  描述:调用一个包含中网页中的函数(只用于 Web Player)。  调用包含在网页中名为 functionNameJavaScript 函数,并传递给定的参数。支持原始的 数据类型(string, int, float, char)和这些类型的数字。如何其他的对象被转化为字符串(使用 ToString 方法)并作为字符串传递。  传递的参数数量是可变的。  //  调用网页上的 MyFunction1 并不使用参数。  Application.ExternalCall ("MyFunction1");  //调用网页上的 MyFunction2 并使用字符串参数。  Application.ExternalCall ("MyFunction2", "Hello from Unity!");  //调用网页上的 MyFunction3 并使用几个不同类型的参数。  Application.ExternalCall ("MyFunction3", "one", 2, 3.0);  被调用的在 HTML 中的函数只需要使用标准的语法即可,例如:        See Also: Browser to Unity communication, Application.ExternalEval.  ◆  static function ExternalEval (script : string) : void  描述:调用包含在网页中的片段脚本函数(只用于 Web Player)。  这将执行包含在网页中 JavaScript 片段 script  //  导航到前一个页面  Application.ExternalEval ("history.back()");  See Also: Browser to Unity communication, Application.ExternalCall.  ◆  static function GetStreamProgressForLevel(levelIndex : int) : float   描述:下载了多少?  在 web 播放器中这将返回这个关卡的进度。  参见:CanStreamedLevelBeLoaded  ◆  static function GetStreamProgressForLevel (levelName : string) : float     描述:下载了多少?[ 0......1]  在 web 播放器中这将返回关卡的进度。  参见:CanStreamedLeverlBeLoaded  函数。  ◆  static function LoadLevel(index : int) : void  描述:加载关卡。  这个函数按照索引加载关卡。在 Unity 中使用 File‐>Build Settings.....菜单可以看到所有   关卡的索引列表。在你能过加载关卡之前你必须将它添加到游戏使用关卡列表中。在   Unity 中使用 File‐>Build Settings.....并添加你需要的关卡到关卡列表中。  //加载索引为  0  的关卡  Application . LoadLevel(0);  当加载崭新的关卡时,所有已经加载的游戏物体都将被销毁。  如果你想让物体在被加   载新关卡时不被销毁,使用 Object.DontDestroyOnLoad  。  ◆  Static function LoadLevel( name : string) : void  描述:按照它的名称加载关卡。  在你能够加载关卡之前你必须将它添加到游戏使用的关卡列表中。在 Unity 中使用  File‐>Build Settings.....  并添加你需要的关卡到关卡列表中。关卡被加载所有激活物体上   的 MonoBehaviour . OnLevelWasLoaded 都被调用。  //  加载名为“HighScore”的关卡。  Application . LoadLevel("HighScore");  当加载新的关卡时,所有已经加载的游戏物体都将被销毁。  如果你想让物体在加载新  关卡时不被销毁,使用 Object. DontDestroyOnLoad。  ◆  static function LoadLevelAdditive ( index : int ) : void  ◆  static function LoadLevelAdditive (name : string ) : void  描述:额外地加载一个关卡。  不同于 LoadLevel,LoadLeavelAdditive  不会销毁当前关卡中的物体。新关卡中的物体   将被添加到当前关卡。这对于创建连续的虚拟世界时非常有用的,当你走过时更多的     内  荣被加载。  ◆  static function OpenURL( url : string ) : void  描述:在浏览器中打开 url  。  在编辑器或者独立播放器模式下,这将在缺省的浏览器中使用新页打开 url  。这将是浏  览器位于前端。  但在网页中执行时,包含插件的页将被重定向到  url  。  Function Start ( ) {  Application . OpenURL ("http://unity3d.com");  }  ◆  Static function Quit ( ) : void  描述:退出应用程序。在编辑器或者 web 播放器中退出被忽略。  //当用户点击 escape 时退出播放器  Function Update ( ){  If ( Input GetKey ( "e scape" )){  Application . Quit ( ) ;  }   }  Array  类  数组允许你将多个对象存储在一个变量中。  Array 类只能用于 JavaScript  。更多关于 C#或 JavaScript 中 ArrayLists  ,字典或哈希表 的信息参考 MSDN  。  这是一个基本的例子,说明可以使用一个数组类做什么      function Start( )  {  var arr = new Array ( ) ;     arr.Push ("Hello");  //添加一个元素     Print(arr[ 0]);   //打印第一个元素   arr length = 2 ;  //调整数组大小  arr [ 1] = "World";  //将“World”赋给第二个元素   for (var value : String in arr)   //遍历这个数组   {  Print ( value );  }       }  Unity 中有两种类型的数组,内置数组和普通的 JavaScript 数组。  内置的数组(原始的.NET 数组),是非常快速和有效的但是它们不能被调整大小。  它们是静态类型的,这允许它们在检视面板中被编辑。这是如何使用内置数组的简单 例子。  //在检视面板中公开一个浮点数组,你可以在那里编辑它  var value : float[ ];  Function Start ( )  {          //遍历数组          for ( var value in values){  Print ( value );  }  //因为我们不能调整内置数组的大小  //我们必须重新创建一个数组来调整它的大小  value = new float[ 10 ];  value[ 1 ] = 5.0;//给第二个元素赋值  }  内置数组在性能相关的代码中非常有用的(使用 Unity 的 JavaScript 和内置数组可以非常 容易使用 mesh interface 在一秒内处理两万个顶点。)  另一方面,普通的 JavaScript 数组可 以调整大小,排序并可以做所有你期望的数组类的操作。JavaScript 数组不显示在检视面板 中。你可以容易地在 JavaScript 数组和内置数组之间转换。  function Start ( )   {   var array = new Array ( V ector3(0,0,0),Vector3(0,0,1));  array .Push (Vector3 (0,0,2));  array .Push (Vector3 (0,0,3));  //拷贝 js 数组到内置数组  var builtinArray : Vector3[ ] = array . ToBuiltin ( Vector3 );  //将内置数组赋给 js 数组  var newarr = new Array ( builtinArray );  //newarr 与 array  包含相同的元素  print ( newarr );  }  注意按照 Unity 的命名规则下面所有函数均大写开头。为方便 JavaScript 用户  ,  Unity 数组类也接受小写函数。  变量  ◆  var  length : int      描述:数组的长度属性,返回或设置数组中元素的数量。  function Start ( )  {  var arr = Array ( "Hello" , "World" ) ;  print (arr . length ) ;  //打印两个  arr . Length = 5 ;  //调整数组的大小为 5  }   函数  ◆  function Add ( value : object ) : void   描述:添加  value  到数组末端。  var arr = new Array ("Hello");  arr.Add (" World ");  Print ( arr );   //打印"Hello ","World"  ◆  function Clear ( ) : void   描述:  清空数组。  数组的长度将为零。      var hello = new Array ("Hello ","World ");  hello.Clear ( ) ;  //现在 hello 包含零个元素  ◆  function Concat ( array :Array , optionalArray0: Array, optionalArray1 : Array):Array  描述:连接两个或多个数组。这个方法不会改变已有的数字并返回连接后的数组拷贝  function Start ( ) {    var arr = new Array ("Hello","World"):    var arr2 =  new Array ("!");    var joined = arr.Concat ( arr2 );   //现在 jointed 包含所有 3 个字符串    Print ( joined );   //打印"Hello","World","!"  }   ◆  function Join ( seperator  :string ) : String   描述:链接数组内容为一个字符串。元素将被 seperator 字符串分割,并返回数组的拷贝  function Start ( ){      var arr = new Array ("Hello" , "World");    print ( arr . join (" , "));//打印"Hello,World"  }  ◆  function Pop ( ) : object     描述:移除数组最后一个元素并返回它。    var arr = new Array ("Hello ","World");    arr . Pop ( );    print ( arr );//只打印"Hello"  ◆  function Push (value : object) : int  描述:  添加 value 到数组末端。并返回新数组长度。  var arr = new Array ("Hello");  arr.Push ("World");  print ( arr );//打印"Hello","World"  ◆  function RemoveAt (index : int ) : void  描述:从数组中移除索引为 index 的元素。  var arr = new Array ("Hello" , " and good morning" , "World ");  arr.Remove ( 1 ) ;   //移除  "and good morning"  print ( arr );//打印  " Hello World "  ◆  function Reverse () : Array  描述:颠倒数组中所有元素顺序。  var hello = new  Array (" Hello " ," World ") ;  hello Reverse( ) ;  print (hello);//打印 World,Hello  ◆  function Shift ( ) :object   描述:移除数组的第一个元素并返回它。  var arr = new Array ( " Hello " , " World ");  arr . Shift ( ) ;     print ( " World " ) ;   //现在 arr 只包含" World "  ◆  function Sort( ) : Array   描述:排序所有数组元素  var hello = new Array ( " e " ," a " ," b ");      hello . Sort ( ) ;  print ( hello ) ;//  打印  a  ,b  ,c     ◆  function Unshift ( newElement : object , optionalElement : object ) : int   描述:  Unshift  添加一个或多个元素到数组的开始位置并返回新的数组长度。  var arr = new Array (" Hello "," World ");  arr . Unshift (" This "," is ");  print ( arr ) ;//打印  This,is,Hello,World  BitStream  类  BitStream  类表示序列化的变量,打包到一个流中。  数据可以被序列化,传输,然后远端使用这个类接受。参考  Network View component  reference  获取关于网络同步的信息和 Network. OnSerializeNetworkView 函数获取更多信息。  变量  ◆  var isReading : bool  描述:这个 BitStream 现在在被读吗?  参考 Network. OnSerializeNetworkView  ◆  var isWriting : bool  描述:这个 BitStream 现在在被写吗?  参考 Network. OnSerializeNetworkView  函数  ◆  function Serialize (ref  value : bool ) : vo id   ◆  function Serialize (ref  value : char ) : void   ◆  function Serialize (ref  value : short) : void   ◆  function Serialize (ref  value : int ) : void   ◆  function Serialize (ref  value : float , maxDelta : float = 0.00001F) : void   ◆  function Serialize (ref  value : Qua ternion, maxDelta : float = 0.00001F) : void   ◆  function Serialize (ref  value : Vector3, maxDelta : float = 0.00001F) : void   ◆  function Serialize (ref  value : NetworkPlayer ) : void   ◆  function Serialize (ref  viewID: NetworkViewID ) : void   描述:BitStream 类可以序列化几个不同类型的变量。  包含:bool , char , short , int  , float , Quaternion , Vector3  和  NetworkPlayer  注意 serialize ( char )系列化一个字节,因此,它只能用于  0......255 之间的字符。  BoneWeight  结构  网格上一个顶点的蒙皮骨骼权值  每个被蒙皮的点至多有四个骨头。所有权值的和应该为 1。权值和骨骼索引应该被以权 值递减的顺序定义。如果一个顶点被少于四个骨骼影响,剩下的权值应该为 0。  参见:Mesh.boneWeights 变量。  变量  ◆  var boneIndex0 : int  描述:第一个骨骼的索引。  参见:weight0 .  ◆  var boneIndex1 : int      描述:第二个骨骼的索引。  参见:weight1.  ◆  var boneIndex2 : int  描述:第三个骨骼的索引。  参见:weight2 .  ◆  var boneIndex3 : int  描述:第四个骨骼的索引。  参见:weight3 .  ◆  var weight0 : float  描述:第一个骨骼的蒙皮权值。  参见:boneIndex0.  ◆  var weight1 : float  描述:第二个骨骼的蒙皮权值。  参见:boneIndex1.  ◆  var weight2 : float  描述:第三个骨骼的蒙皮权值。  参见:boneIndex2.  ◆  var weight3 : float  描述:第四个骨骼的蒙皮权值。  参见:boneIndex3.  Bounds   结构  代表一个轴对齐包围盒。  一个轴对齐包围盒,简称为 AABB,是与坐标轴对齐的 box 并且完全包围一些物体。因 为这个 box 不会绕着轴旋转,所以它可以只用 center 和 extents 定义,或者用 min 和 max 点定义。  Bounds 被 Collider.bounds,Mesh.bounds,Renderer.bounds 使用。  变量  ◆var center : Vector3  描述:包围盒子的中心  ◆var extents : Vector3  描述:box 的宽度。这个总是 size 的一半  ◆var max : Vector3  描述:box 的最大点。这个总是等于 center + extents。  ◆var min : Vector3  描述:box 的最小点。这个总是等于 center ‐ extents。  ◆var size : Vector3  描述:box 的总大小。这个总是 extents 的二倍。  size.x 是宽度,  size.y  是高度,  size.z  是长度。  构造函数  ◆static function Bounds ( center : Vector3 , size : Vector3 ) : Bounds  描述:用给定的 center 和总 size 创建新的 Bounds。Bounds  extents 将是给定 size 的一 半。  var bounds = Bounds ( Vector3.zero , Vector3(1,2,1));//在原点常见柱状包围盒      函数  ◆function Contains ( point : Vector3 ) : bool  描述:point  包含在这个包围盒中吗  ?  ◆function Encapsulate ( point : Vector3 ) : void  描述:增大 Bounds 以包含这个 point.   ◆function Encapsulate ( bounds : Bounds ) : void  描述:增大 bounds 来封装另一个 bounds。  ◆function Expand ( amount : float ) : void  描述:沿着每个面按照 amount 增加它的 size 来扩展这个 bounds。  ◆function Expand ( amount : Vector3 ) : void  描述:沿着每个面按照 amount 增加它的 size 来扩展这个 bounds。  ◆function IntersectRay ( ray : Ray ) : bool  描述:ray 与这个包围盒相交吗?  ◆function IntersectRay ( ray : Ray , out distance : float ) : bool  描述:ray 与这个包围盒相交吗?  当 IntersectRay 返回真,distance 将是到射线源点的距离。  ◆function SetMinMax ( min : Ve ctor3, max : Vector3 ) : void   描述:设定边界为盒子的 min 和 max 值。  使用这个函数要比分别指定 min 和 max 更快。  ◆function SqrDistance ( point : Vector3 ) : float  描述:  点到这个包围盒的最小平方距离。  ◆function ToString ( ) : string  描述:返回一个格式化好的字符串  collision  类  描述碰撞  Collision  信息被传递到 Collider  .  OnCollisionEnter  ,  Collider  .  OnCollisionStay 和 Collider.OnCollisionExit 事件。参见:  ContactPoint.  变量  ◆var collider : Collider  描述:碰撞到的 Collider (  只读  ).  为了得到所有被碰撞到的碰撞器的细节,你需要迭代接触点( contacts 属性)。  ◆var contacts : ContactPoint [ ]  描述:接触点由物理引擎产生。  每个 contact 包含一个接触点,法线和两个发生碰撞的碰撞器(参考 ContactPoint)。在 OnCollisionStay 或者 OnCollisionEnter 内可以确保 contacts 有至少一个元素。  function OnCollisionStay ( collision : Collision ){  //检查碰到碰撞器是否有刚体   //然后使用一个力  for ( var contact : ContactPoint in collision . contacts ) {  print ( contact.thisCollider . name + "hit" + contact . otherCollider .name );  //可视化接触点  Debug.DrawRay ( contact . point , contact . normal, Color .white ) ;  }      }  //一枚手榴弹,在击中一个表面时初始化一个爆炸预设,然后销毁它  var explosionPrefab : Transform;  function OnCollisionEnter( collision : Collision ){     //旋转这个物体使 y 轴面沿着表面法线的方向    var contact = collision . contact [ 0 ];    var rot = Quaternion . FromToRotation ( Vector3.up , contact . normal ) ;    var pos = contact . point ;    Instantiate ( explosionPrefab , pos , rot  ) ;    Destory ( gameObject );//销毁这个投射物    }  ◆var gameObject : GameObject  描述:/ gameObject /  是与之碰撞的物体(只读)  ◆var relativeVelocity : Vector3  描述:  两个碰撞物体的相对线形速度(只读)。  //当以较大的速度碰到一个物体时播放声音  function OnCllisionEnter ( collision : Collision ) {  if ( collision . relativeVelocity . magnitude > 2 )   audio .Play ( );  }  ◆var rigibody : Rigidbody  描述:碰撞到的 Rigidbody(只读),如果碰到的物体是一个没有附加刚体的碰撞器, 返回 null  //让所有碰到的刚体向上飞  function OnCollisionStay ( collision : Collision ) {  //检查碰到的碰撞器是否有一个刚体  ,然后使用力  if ( collision . rigidbody ){   collision . rigidbody .AddForce ( Vector3 . up * 15 ) ;  }  }  ◆var transform : Transform  描述:碰撞到的物体的 Transform(只读)。  如果碰到一个带有 Rigidbody 的碰撞器,transform 将是所有附加刚体的变换。如果碰 到了一个没有刚体的碰撞器,transform 将是所有附加碰撞器的变换。  color  结构  表示 RGBA 颜色。  这个结构被用在整个 Unity 中传递颜色。每个颜色组件是一个 0 到 1 之间的浮点数。   组件(r ,g ,b )在 RGB 颜色空间内定义一个颜色。Alpha 组件(a)透明性 ‐ alpha 为 0 是 完全不透明,alpha 为 1 是完全透明。  变量  ◆var  a : float   描述:颜色的 Alpha 组件。  var color = Color . white ;      color . a = 0 ;  ◆var b : float   描述:颜色的蓝色组件。  var color = Color .white;  color .b = 0 ;  ◆var g : float  描述:颜色的绿色组件  var color = Color . white ;  color . g = 0 ;  ◆var grayscale : float   描述:颜色的灰度值(只读)  var color = Color ( 3 , 4 ,6 ) ;  print ( color . grayscale ) ;  ◆var r : float   描述:颜色的红色组件。  var color = Color . white ;  color . r = 0  ◆var this [ index : int ] : float  描述:分别使用[ 0 ] ,[ 1 ] ,[ 2 ] ,[ 3 ]访问 r  ,g  , b  ,a 组件。  Color p ;  p [ 1 ] = 5 ;//与 p .g = 5 相同  构造函数  ◆static function Color ( r : float , g : float , b : float, a: float ) : Color  描述:用给定的  r , g , b , a ,组 件构建一个新的颜色。  var color = Color ( 0.2 , 0.3 , 0.4 , 0.5 ) ;  ◆static function Color ( r : float , g : float , b : float ) : Color  描述:用给定的  r , g , b  组件构建一个新的颜色并设置  a  为 1  var color = Color (0.2 , 0.3 , 0.4 ) ;  函数  ◆function ToString ( ):string    描述:返回格式化好的这个颜色的字符串。    print ( Color .white ) ;  类变量  ◆static var black : Color  描述:黑色。  RGBA 为(  0 , 0 , 0 , 1 ).  ◆static var blue : Color  描述:蓝色。  RGBA 为(  0 , 0 , 1 , 1 ).  ◆static var clear  : Color  描述:完全透明。  RGBA 为(  0 ,0, 0, 0 ).  ◆static var eyan : Color  描述:青色。  RGBA 为(  0 , 1 , 1 , 1 ).   ◆static var gray : Color  描述:灰色。RGBA 为  ( 5 , 5 , 5 , 1 ).  ◆static var green : Color       描述:绿色。RGBA 为(0, 1 , 0, 1 ).  ◆static var grey : Color   描述:英式拼法为 gray。RGBA 为(0.5 , 0.5 , 0.5 , 1 ).  ◆static var magenta : Color   描述:紫红色。RGBA 为(1 , 0 , 1 , 1 ).  ◆static var red : Color   描述:全红。RGBA 为(1 , 0 , 0, 1 ).  ◆static var white : Color   描述:全白。RGBA 为(1 , 1 , 1 , 1 ).  ◆static var yellow : Color   描述:黄色。RGBA 是怪异的(1 , 235/255 , 4/2 5 5 , 1 ),但是这个颜色看起来非常好!  类方法  ◆static function Lerp ( a : Color , b : Color , t : float ) : Color    描述:在颜色 a 和颜色 b 之间按照 t 插值。  / t /被限定到 0  和 1 之间,当 t 为 0 时返回 a .  当 t 为 1 时返回 b  ◆static operator * ( a : Color , b : Color) : Color  描述:乘两个颜色,每个组件被分别乘。  ◆static operator * ( a : Color , b : float) : Color  描述:用浮点数 b 乘以颜色 a。每个组件被分别乘。  ◆stat ic operator * ( a : float , b : Color) : Color  描述:用浮点数 b 乘以颜色 a。每个组件被分别乘。  ◆static operator + ( a : Color , b : Color) : Color  描述:加两个颜色,每个组件被分别加。  ◆static operator ‐ ( a : Color , b : Color) : Color  描述:从颜色 a 中减去颜色 b。每个组件被分别减。  ◆static operator / ( a : Color  , b : float) : Color  描述:乘用浮点数 b 除以 a。每个组件被分别除。  ◆static implicit function Color ( v : Vectro4 ) : Color   描述:Colors 可以被隐式转化为 Vector4,或由它转化而来。  ◆static implicit function Vector4 ( c : Color ) : Vector4  描述:Colors 以被隐式的转化为 Vector4,或由它转化而来。  ContactPoint  结构  描述:碰撞发生的接触点。  接触点被存储在 collision 结构中,参见 collision  ,  collision  .  OnCollisionEnter,         Collision . OnCollisionStay  , Collision . OnCollisionExit.  变量  ◆var normal : Vector3  描述:接触点的法线  ◆var otherCollider : Collider  描述:碰撞中的另一个碰撞器  ◆var point : Vector3  描述:接触点  ◆var thisCollider : Collider        描述:碰撞中的第一个碰撞器  ControllerColliderHit  类  ControllerColliderHit 被 CharacterController  .  OnControllerColliderHit 使用来给出详细的 关于碰撞和如何处理它们的信息。  变量  ◆var collider : Collider  描述:被控制器碰到的碰撞器。  ◆var controller : CharacterController  描述:碰到该碰撞器的控制器。  ◆var gameObject : GameObject  描述:被控制器碰到的游戏物体。  ◆var moveDirection : Vector3  描述:从胶囊的中心到接触点的大致方向。  这可以用来找到一个合理的方向将力应用到接触的刚体。  ◆var moveLength : float  描述:角色碰到这个碰撞器时已经行走了多远。  注意这可能不同于你传递到 CharacterController . Move 的。因为所有的移动都是被碰撞 器制约的。  ◆var normal : Vector3  描述:在世界空间中碰撞表面的法线。  ◆var point : Ve ctor3  描述:世界空间中的碰撞点。  ◆var rigidbody : Rigidbody  描述:被控制器碰到的刚体。  如果没有接触一个刚体而是一个静态碰撞器时为 null。  ◆var transform : Transform  描述:被控制器碰到的变换。  Debug  类  一个类,包含用于开发游戏时的调试方法。  类变量  ◆static var isDebugBuild : bool  描述:在 Build Settings....对话框中,有一个被称为"strip debug symbols"的复选框。  如果它被选择 isDebugBuild 将为关。在编辑器中 isDebugBuild 总是返回真,建议在发 布游戏的时候移除所有对 Debug  .Log 的调用,这样你就能够容易的发布带有调试输出的测 试版,而最终版没有调试输出。  //只有这是调试版时,记录调试信息  if ( Debug .isDebugBuild ) {  Debug . Log ( " Something bad  happened ! " ) ;  }  类方法  ◆static function Break ( ) : void  描述:暂停编辑器      Debug . Break ( ) ;  ◆static function DrawLine ( start:Vector3, end: Vector3, color : Color = Color . white ) :  void  描述:从 point 开始到 end 用颜色绘制一条线。    这个线将被绘制在编辑器的场景视图中。如果在游戏视图中启用了 gizmo 绘制,这 个线也将被绘制在这里。  //从世界坐标的原点到点( 1 , 0 , 0 )绘制一条红色的线  function Update ( ) {  Debug . DrawLine ( Vector3 . Zero , new  Vector3 ( 1 , 0 , 0 ), Color . red ) ;  }  ◆static function DrawRay ( start:Vector3, dir : Vector3, color : Color = Color . white ) : void  描述:从 start  到 start+dir  用颜色绘制一条线。  //绘制一条 10 米长的线从 position,沿着变换的 z 轴向前。  function Update ( ) {  var forward = transform . TransformDirection ( Vector3 . forward ) * 10 ;  Debug . DrawRay ( transform . position .Vector3 . forward * 10 , Color . green );  }  ◆static function Log ( message : object ) : void  描述:记录 message 到 Unity 控制台。  Debug . Log ( "Hello");  ◆static function Log ( me ssage : object . context : Object ) : void  描述:记录 message 到 Unity 控制台。  当你在控制台中选择消息的时候一个到上下文物体的链接将被绘制。这是非常有用的。 如果你想知道那个物体发生了错误。  Debug . Log ( "Hello" , gameObject ) ;  ◆static function LogError ( message : object ) : void  描述:Debug . Log  的一个变体,用来记录错误信息到控制台。  var memberVariable : Transform ;  if ( memberVariable == null )  Debug . LogError ( " memberVariable must be set to point to a Transform. ") ;  ◆static function LogError ( message : object , context : Object ) : void   描述:Debug . Log 的一个变体,用来记录错误信息到控制台。  等你在控制台中选择消息的时候一个到上下文物体的链接将被绘制。这是非常有用的,   如果你想知道那个发生了错误。  var memberVariable : Transform ;   if ( memberVariable == null )  Debug . LogError ( "memberVariable must be set to point to a Transform " , this ) ;  ◆static function LogWarning ( message : object ) : void   描述:Debug . Log  的一个变体,用来记录警告信息到控制台。  ◆static function LogWarning ( message : object , context : Object ) : void         描述:Debug . Log 的一个变体,用来记录警告信息到控制台。        当你选择控制台中的一个消息时,一个到上下文物体的连接将被绘制。这是 非常有用的,      如果你想知道那个物体发生了错误  Event      类        一个 UnityGUI 事件。        对应于用户的输入事件(按键,鼠标事件),或者是 UnityGUI 布局或渲染事件。        对于每个事件 OnGUI 在脚本中被调用;因此 OnGUI 在每帧中被潜在调用多次。  Event . current 对应于 OnGUI 调用“当前”事件。    参见:GUIScripting Guide  变量  ◆var alt : bool   描述:Alt/Option 键被按住?(只读)  在 windows 下,如果 Alt 键被按下返回真。在 Mac 下,如果 Option 键被按下返回真。  ◆var button : int  描述:哪个鼠标键被按下  0 表示左键,1 表示右键。2 表示中键。在 EventType . MouseDown ,EventType .MouseUp  事件中使用。  ◆var capsLock : bool  描述:Caps Lock  处于打开状态?(只读)  如果 Caps Lock 为打开返回真  ◆var character : char  描述:输入的字符  在 EventType . KeyDown  事件中使用,注意 EventType . KeyUp 事件不包含字符,只包含 Event . keyCode .  参见:Event . keyCode.  ◆var command : bool  描述:Command/Windows 键被按住?(只读)  在 Windows 下,如果 Windows 键被按下返回真。在 Mac 下,如果 Command 键被按 下返回真。  ◆var control : bool   描述:Control 被按下?(只读)  如果 Control 被按下返回真。  ◆var delta : Ve ctor2  描述:与上次事件相比,鼠标的相对移动。  在 EventType  .MouseMove,EventType  .MouseDrag,,EventType  .ScrollWheel 时间中使 用。  参见:Event . mousePosition  ◆var functionKey : bool   描述:当前按下的键是功能键?(只读)  如果当前按下的键是方向键,翻页键,退格键等等时返回真,如果这个键需要特殊处 理才能用与文本编辑时,functionKey 为打开。  ◆var isKey : bool  描述:这个事件是键盘事件?(只读)  ◆var isMouse : bool  描述:这个事件是鼠标事件?(只读)  ◆var keyCode : KeyCode   描述:用于键盘事件的原始键代码      在 EventType  .  KeyDown  和  EventType  .  KeyUp 事件中使用;返回匹配物理键盘的 KeyCode 值,使用这个来处理光标,功能键等等。  参见:Event . character  。  ◆var mousePosition : Vector2  描述:鼠标位置  在 EventType . MouseMove  和 EventType . MouseDrag 事件中使用。  参见:Event . delta  ◆var numeric : bool  描述:当前按下的数字的键?(只读)  使用这个表示区分主&数字键。  ◆var shift : bool  描述:Shift 被按下?(只读)  如果 Shift 被按下返回真。  函数  ◆function GetTypeForControl ( controlID : int ) : EventType  参数  controlID           查询的控件 ID。从 GUIUtilty  .  GetControlID  (  )  获取。参考    EventType 获取可能值的列表。  描述:为给定的控件 ID 获取一个过滤的事件类型。  这个函数可以用来实现鼠标锁和键盘焦点。  ◆function  Use ( ) : void   描述:使用这个事件。  当已经使用了一个事件时调用这个方法。事件类型将被设置为 EventType . Used。使其   他 GUI 元素忽略它。  类变量   ◆static var current : Event    描述:现在被处理的当前事件。  类方法  ◆static function KeyboardEvent ( key : string ) : Ev ent    描述:创建一个键盘事件。    这可用于检查某个键是否被按下。可能带有调整器。key 字符串是键的名称(与输 入管理器中的相同),可以使用任意数量的调整器前缀:&  =  Alternate  ,  ^  =  Controler,  %  =  Command , # = Shift   例如:&f12 = Alternate +F12., " ^[ 0 ] " = Control +keypad0    function OnGUI ( ) {  GUILayout . Lable ( " Press Enter To Start Game ") ;     if ( Event . current . Equals ( Event . KeyboardEvent ("[enter]")))     Application . LoadLevel ( 1 )   if(Event current Equals(Event KeybordEvent("return") ))  Print( "I said enter ,not return – try the keypad" );  }  GL  类  底层图像库。  使用这个类操作激活的变换矩阵,发送与 OpengGL 立即模式相同的渲染命令并做一些     其他的底层图像操作。注意,在所有情况下使用 Graphics.DrawMesh 比任何使用立即模式绘 制更有效。  这个类只限于 Unity Pro.  类变量  ◆  static var LINES: int  描述:用于 Begin 的模式:绘制直线。  参见:GL . Begin, GL . End.  ◆  static var modelview:Matrix4x4  描述:当前模型视矩阵。  给这个变量赋值等同于 OpenGL 中的 glLoadMatrix(mat);在其他图形 API 中对应的功能 被模拟。  改变模型视矩阵覆盖当前相机的视参数,因此最常用的是使用 GL.PushMatrix 和 GL.PopMatrix 来保存和恢复矩阵。  读取这个变量返回当前模型视矩阵。  ◆  static var QUADS:int  描述:用于 Begin 的模式:绘制四边形  参见:GL.Begin,GL.End.  ◆  static var TRIANGLE_STRIP:int  描述:用于 Begin 的模式:绘制三角面  参见:GL .Begin,GL.End.  ◆  static var TRIANGLES:int  描述:用于 Begin 的模式:绘制三角形  参见:GL.Begin,GL.End.  类方法  ◆  static function Begin(mode:int) : void  参数  mode         绘制的几何体:可以是 TRIANGLES,TRIANGLE_STRIP,QUADS 或         LINES.  描述:开始绘制 3D 几何体  这个对应 OpenGL 中的 glBegin,在其他图形 API 中相同的功能被模拟  ,在 GL.Begin  和   GL.End 之间,可以调用 GL .Veriex,GL.Color,GL.TexCoord 和其他立即模式绘制函数。    在绘制你自己的几何体时,你应该注意它们的裁剪。裁剪规则可能会因为不同的图 形  API 而不同。在大多数情况下在 shader 中使用 Cull Off 命令是安全的。  参见:GL.End.  ◆  static function Clear(clearDepth:bool,clearColor:bool,backgroudColor):void  参数  clearDepth            应该清除深度缓存?  clearColor            应该清除颜色缓存?  backgroudColor       颜色被清理为什么,只有当 clearColor 为 true 时使用.  描述:清除当前渲染缓存  这将清除屏幕或激活的 RenderTexture.  ◆  static function Color(c : Color) : void  描述:设置当前顶点颜色  这个对应 OpenGL 中的 glColor4f(c. r,c.g,c.b,c.a):在其他图形中 API 中相同的功能被模拟,      为了使逐顶点颜色可以在不同的硬件上工作,你需要使用绑定了颜色通道的 shader。 参考 BindChannels 文档.  这个函数只在 GL.Begin 和 GL.End 函数之间调用.  ◆  static function End( ) : void  描述:结束绘制 3D 几何体  这个对应 OpenGL 中的 glEnd;在其他图形 API 中相同的功能被模拟.  参见:GL.Begin.  ◆  static function LoadIdentity( ) : void  描述:加载单位矩阵到当前模型视矩阵。  这个函数覆盖当前相机的视参数,因此最常用的是使用 GL.PushMatrix 和 GL.PopMatrix  来保存和恢复矩阵。  ◆  static function LoadOrtho( ) : void  描述:辅助函数用来设置一个正交透视变换  调用 LoadOrtho 知道,视锥从  (0,0,‐1)  变化到(1,1,100).  ◆  static function LoadPixelMatrix( ) : void  描述:设置一个用于像素修正渲染的矩阵。  这个设置模型视和投影矩阵,因此 X,Y 坐标直接映射到像素。(0,0)位于当前相机  视口的左下角。Z 坐标从‐1 到+100  这个函数覆盖当前相机的参数,因此最常用的是使用 GL.PushMatrix 和 GL.PopMatrix  来保存和恢复矩阵。  ◆  static function LoadPixelMatrix(left:float,right:float,bottom:float,top:float):void   描述:设置一个矩阵的像素正确渲染。  这样设置投影矩阵点以便 X、Y 坐标图直接像素化。(0,0)在底部左侧当前摄像机的视 角。Z 坐标是从‐1 到+100。  这个函数覆盖了相机的参数,所以通常你要保存和恢复矩阵就使用 GLPushMatrix 和 GL.PopMatrix。  ◆  static function LoadProjectionMatrix (mat : Matrix4x4) : void   描述:加载到当前任意矩阵投影矩阵。  这个函数重写当前摄像机的投影参数,所以通常你要保存和恢复投影矩阵就使用 GLPushMatrix 和 GL.PopMatrix。  ◆  static function MultiTexCoord (unit : in t, v : Vector3) : void   描述:设置当前纹理坐标(v.x,v.y,v.z)实际的纹理单元。  在 OpenGL 中 glMultiTexCoord 为特定的纹理单元如果多纹理是可用的。在其他图形的 API 中相同的功能进行了仿真。  这个函数只能被称为介于 GL.Begin 和 GL.End 功能之间。  ◆  static function MultiTexCoord2 (unit : int, x : float, y : float) : void   描述:设置当前纹理坐标(x,y)的为实际纹理单元。  在 OpenGL 中 glMultiTexCoord 为特定的纹理单元如果多纹理是可用的。在其他图形的 API 中相同的功能进行了仿真。  这个函数只能被称为介于 GL.Begin 和 GL.End 功能之间。  ◆  static function MultiTexCoord3(unit : int, x : float, y : floa t, z : float) :void   描述:设置当前纹理坐标(x,y,z)的为实际纹理单元。  在 OpenGL 中 glMultiTexCoord 为特定的纹理单元如果多纹理是可用的。在其他图形的 API 中相同的功能进行了仿真。      这个函数只能被称为介于 GL.Begin 和 GL.End 功能之间。  ◆  static function MultMatrix (mat : Matrix4x4) : void   描述:复制当前的点矩阵和其中的一个说明。  相当于 glMultMatrix(垫在)OpenGL;  在其他图形 API 的相应功能是相仿的。  换点矩阵覆盖当前相机视图的参数,所以通常你要保存和恢复投影矩阵就使用 GLPushMatrix 和 GL.PopMatrix。  ◆  static function PopMatrix () : void   描述:恢复了投影和点矩阵的矩阵堆栈的顶部。  换投影矩阵点覆盖当前相机视图的参数。这些矩阵可以用GLPushMatrix和GL.PopMatrix 来保存和恢复。  参见:PushMatrix 函数。  ◆  static function PushMatrix () : void   描述:节约双方投影矩阵对点和矩阵堆栈。  换投影矩阵点覆盖当前相机视图的参数。这些矩阵可以用 GLPushMatrix 和    GL.PopMatrix 来保存和恢复。    参见:PopMatrix 函数  ◆  static function Se tRevertBackfacing(revertBackFaces : bool) : void    描述:选择是否翻转隐面剔除,是(真)或者不是(假)  ◆  static function TextCoord (v : Vector3) : void    描述:为所有纹理单元设置当前纹理坐标(v.x, v.y, v.z)    这个对应于 OpengGL 中用于所有纹理单元的 glMultiTexCoord 或者多纹理不可用时 的 glTexCoord,在其他的图形 API 中仿真了相同的功能。    这个函数只在 GL.Begin 和 GL.End 函数之间调用。  ◆  static function TexCoord2(x : float, y : float) : void    描述:为所有纹理单元设置当前纹理坐标(x, y)    这个对应于 OpengGL 中用于所有纹理单元的 glMultiTexCoord 或者多纹理不可用时 的 glTexCoord,在其他的图形 API 中仿真了相同的功能。    这个函数只在 GL.Begin 和 GL.End 函数之间调用。  ◆  static function TexCoord3(x : float, y : float, z : float) : void    描述:为所有纹理单元设置当前纹理坐标(x, y, z)    这个对应于 OpengGL 中用于所有纹理单元的 glMultiTexCoord 或者多纹理不可用时 的 glTexCoord,在其他的图形 API 中仿真了相同的功能。    这个函数只在 GL.Begin 和 GL.End 函数之间调用。  ◆  static function Vertex(v : Vector3) : void    描述:提交顶点    这个对应OpenGL中的glVertex3f(v.x, v.y.v.z);  在其他图形API中相同的功能被模拟。    这个函数只在 GL.Begin 和 GL.End 函数之间调用。  ◆  static function Vertex3(x : float, y : float, z : float) : void    描述:提交顶点    这个对应 OpenGL 中的 glVertex3f(x, y, z);  在其他图形 API 中相同的功能被模拟。    这个函数只在 GL.Begin 和 GL.End 函数之间调用。  ◆  static function Viewport(pixelRect : Rect) : void    描述:设置渲染视口    所有的渲染都被限制在 pixelRect 之内。      GUIContent    类    GUI 元素的内容    这个与 GUIStyle 紧密相关,GUIContent 定义渲染什么而 GUIStyle 定义如何渲染。    参见:GUIStyle  变量  ◆  var image : Texture  描述:包含图标的图像  ◆  var text : string    描述:包含的文本  ◆  var tooltip : string    描述:这个元素的提示    与这个内容相关的提示。读取 GUItooltip 来获取当前用户指向的 GUI 元素的提示。  构造函数  ◆  static function GUIContent() : GUIContent    描述:用于所有形状和尺寸的 GUIContent 的构造函数    构建一个空的 GUIContent。  ◆  static function GUIContent(text : st ring) : GUIContent    描述:构建一个只包含文本的 GUIContent 物体。    使用 GUI 是,你不需要为一个简单的文本字符创建 GUIContents  –  这两行代码功 能等效:    function OnGUI()  {    GUI.Button(Rect(0, 0, 100, 20), “Click Me”);    GUI.Button(Rect(0, 30, 100, 20), GUIContent(“Click Me”));  }  ◆  static function GUIContent(image : Texture) : GUIContent    描述:构建一个只包含图片的 GUIContent 对象。    var icon : Texture;    function OnGUI()  {    GUI.Button(Rect(0, 0, 100, 20),  GUIContent(icon));  }  ◆  static function GUIContent(text : string, image : Texture) : GUIContent    描述:构建一个包含 text 和图片的 GUIContent 对象    var icon : Texture;    function OnGUI()  {    GUI.Button(Rect(0, 0, 100, 20), GUIContent(“Click me”, icon));  }  ◆  static function GUIContent(text : string, tooltip : string) : GUIContent    描述:构建一个包含 text 的 GUIContent,当用户鼠标悬停在它上面的时候,全局 GUI.tooltip 被设置为 tooltip。    function OnGUI()        {    GUI.Button(Rect(0, 0, 100, 20), GUIContent(“Click me”,  “This is a tooltip.”));    //如果用户指向这个按钮,全局提示被设置    GUI.Label(Rect(0, 40, 100, 40), GUI.tooltip);  }  ◆  static function GUIContent(image : Texture, tooltip : string) : GUIContent    描述:构建一个包含图片的 GUIContent,当用户鼠标悬停在它上面的时候,全局 GUItooltip 被设置为 tooltip。  ◆  static  function  GUIContent(text  :  string,  image  :  Texture,  tooltip  :  string)  :  GUIContent    描述:构建一个包含 text 和 image 的 GUIContent,,当用户鼠标悬停在它上面的时 候,全局 GUItooltip 被设置为 tooltip。  ◆  static function GUIContent(src : GUIContent) : GUIContent    描述:从另一个 GUIContent 构建一个 GUIContent。  GUILayoutOption  类  内部类用来传递布局选项给 GUILayout 函数,不要直接使用这些,而是在 GUILayout 类 的布局函数中构造它们。  参见:  GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth,  GUILayout.MaxWidth,  GUILayout.MinHeight,  GUILayout.MaxHeight,  GUILayout.ExpandWidth,  GUILayout.ExpandHeight  GUILayoutUtility    类    用于实现并扩展 GUILayout 类的工具函数。    使用这个类制作你自己的 GUI 布局代码  类方法  ◆  static function BeginGroup(GroupName : string) : void     ◆  static  function  BeginLayoutGroup(style  :  GUIStyle,  options  :  GUILayoutOption[],  LayoutType : System.Type) : GUILayoutGroup    描述:普通的辅助函数  –  当创建一个布局组的时候使用这个。它将确保所有的 事情都正确的排列。    style :  组选项的风格    option :  使用的布局选项    LayoutType :  创建的布局组的类型  ◆  static function EndGroup(groupName : string) : void  ◆  static function GetAspectRect(aspect : float) : Rect  ◆  static function GetAspectRect(aspect : floar, style : GU IStyle) : Rect  ◆  static function GetAspectRect(aspect : float,  params options : GUILayoutOption[]) :  Rect  ◆  static  function  GetAspectRect(aspect  :  float,  style  :  GUIStyle,  params  options:   GUILayoutOption[]) : Rect    参数        aspect   这个元素的宽高比(宽/高)  style   一个可选的风格。如果指定风格的 padding 将被添加到返回举行的尺寸并且这 个风格的 margin 将被用于间距。  options  一个可选的布局选项的列表,它用来指定额外的布局属性。任何在这里设置 的值将覆盖由 Style 定义的设置。参见 GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth,  GUILayout.MaxWidth,  GUILayout.MinHeight,  GUILayout.MaxHeight,  GUILayout.ExpandWidth, GUILayout.ExpandHeight.  返回 Rect  –  控制的矩形  描述:用一个制定的宽高比获取一个矩形。  ◆  static  function  GetRect(content  :  GUIContent,  style  :  GUIStyle,  params  options  :  GUILayoutOption[]) : Rect    参数    content   让出空间所显示的内容    style 用于布局的 GUIStyle  options   一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里 设置的值将覆盖由 style 定义的设置。参见:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth,  GUILayout.MaxWidth,  GUILayout.MinHeight,  GUILAyout.MaxHeight,  GUILayout.ExpandWidth, GUILayout.ExpandHeight  返回 Rect  –  一个足够大的矩形区域用来包含用/style/渲染时的/content/。  描述:获取一个以特定风格显示内容的矩形。  ◆  static function GetRect(width : float,  height : float) : Rect  ◆  static  function  GetRect(width  :  float,  height  :  float,  params  options  :  GUILayoutOption[]) : Rect  ◆  static function GetRect(width : float, height : float, style : GUIStyle,  params options :  GUILayoutOption[]) : Rect    参数     width   你想要的区域的宽度    height   你想要的区域的高度  style   用了布局的可选 GUIStyle,如果指定,风格的 padding 将被添加到尺寸并且它 的 margin 将被用于间距  options  一个可选的布局选项的列表,它用来指定额外的布局属性。任何在这里设置 的值将覆盖由 style 定义的设置。    参见:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth,  GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth,  GUILayout.ExpandHeight.  返回 Rect  –  用于放置控件的矩形  描述:用一个固定的内容区域获取一个矩形  ◆  static  function  GetRect(minWidth  :  float,  maxWidth  :  float,  minHeight  :  float,    maxHeight : float) : Re ct  ◆  static  function  GetRect(minWidth  :  float,  maxWidth  :  float,  minHeight  :  float,    maxHeight : float, style : GUIStyle) : Rect  ◆  static  function  GetRect(minWidth  :  float,  maxWidth  :  float,  minHeight  :  float,  maxHeight :  float, params options : GUILayerOption[]) : Rect  ◆  static  function  GetRect(minWidth  :  float,  maxWidth  :  floa t,  minHeight  :  float,      maxHeight :  float, style : GUIStyle, paramas option : GUILayoutOption[]) : Rect    参数    minWidth   传回区域的最小宽度    maxWidth   传回区域的最大宽度    minHeight   传回区域的最小高度    maxHeight   传回区域的最大宽度  style   一个可选的风格。如果指定,风格的 padding 将被添加到尺寸并且它的 margin 将被用于间距  options  一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里设置 的值将覆盖由 style 定义的设置。    参见:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth,  GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth,  GUILayout.ExpandHeight.  返回 Rect  –  一个矩形区域在两个轴上的尺寸介于 minWidth 和 maxWidth 之间  描述:从布局系统获取一个可扩展的矩形,矩形的尺寸将在 min 和 max 值之间。  GUILayout    类    GUILayout 是用于 UnityGUI 自动布局的类。    参见:GUI Layout tutoria  类方法  ◆  static function BeginArea(screenRect : Rect) : void  ◆  static function BeginArea(screenRect : rect, text : string) : void  ◆  static function BeginArea(screenRect : Rect, image : Texture) : void  ◆  static function BeginArea(screenRect : Rect, content : GUIContent) : void  ◆  stat ic function BeginArea(screenRect : Rect, style : GUIStyle) : void  ◆  static function BeginArea(screenRect : Rect, text : string, style : GUIStyle) : void  ◆  static function BeginArea(screenRect : Rect, image : Texture, style : GUIStyle) : void  ◆  static function BeginArea(screenRect : Rect, content : GUIContent, style : GUIStyle) :  void    参数    text 可选的显示在该区域中的文本    image   可选的显示在该区域中的纹理    content   可选的在该区域顶部显示的文本,图片和提示  style   使用的风格。如果留空,空的 GUIStyle(GUIStyle.none)将被使用,给出一个透 明的背景。参见:EndArea  描述:在屏幕的固定区域开始一个 GUI 空间的 GUILayout 块。  默认的,任何使用 GUILayout 制作的 GUI 空间都放置在屏幕的左上角。如果你想在任一 区域放置一系列自动布局的控件,使用 GUILayout.BeginArea 定义一个新的区域以便自动布 局系统可以使用它。  function OnGUI()  {    GUILayout.BeginArea(Rect(200, 200, 100, 100));    GUILayout.Button(“Click me”);  GUILayout.Button(“Or me”);      GUILayout.EndArea();  }  在混合 GUILayout 代码是这个函数是非常有用的。必须与 EndArea 调用匹配。BeginArea  / EndArea 不能嵌套。  ◆  static function BeginHorizontal(params options : GUILayoutOption[]): void  ◆  static function BeginHorizontal(style : GUIStyle, params options : GUILayoutOption[]):  void    参数    style 这个风格用于背景图片和填充值。如果留空,背景是透明的。  options   一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这个 设置的值将覆盖由 style 定义的设置。    参见:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth,  GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth,  GUILayout.ExpandHeight  描述:开始一个水平控件组。  所有在这个元素内部渲染的空间将被一个接一个的水平放置,改组必须调用 EndHorizontal 关闭。     ◆  static  function  BeginScrollView(scrollPosition  :  Ve ctor2,  params  options  :  GUILayoutOption[]) : Vector2  ◆  static function BeginScrollView(scrollPosition : Vector2, horizontalScrollbar : GUIStyle,  verticalScrollbar : GUIStyle, params options : GUILayoutOption[]) : Vector2  ◆  static function BeginScrollView(scrollPosition : Vector2, alwaysShowHorizontal : bool,  alwaysShowVertical : bool, params options : GUILayoutOption[]) : Vector2  ◆  static function BeginScrollView(scrollPosition : Vector2, style : GUI Style) : Vector2  ◆  static function BeginScrollView(scrollPosition : Vector2, alwaysShowHorizontal : bool,  alwaysShowVertical : bool, horizontalScrollbar : GUIStyle, verticalScrollbar : GUIStyle,  params  options : GUILayoutOption[]) : Vector2  ◆  static function BeginScrollView(scrollPosition : Vector2, alwaysShowHorizontal : bool,  alwaysShowVertical  :  bool,  horizontalScrollbar  :  GUIStyle,  verticalScrollbar  :  GUIStyle,   background : GUIStyle, params options : GUILayoutOption[]) : Vector2    参数:    scrollPostion  用来显示的位置  alwaysShowHorizontal   可选的参数用来总是显示水平滚动条。如果为假或者留空, 它将只在 ScrollView 中的内容比滚动视宽时显示。  alwaysShowVertical  可选的参数用来总是显示垂直滚动条。如果为假或者留空,它 将只在 ScrollView 中的内容比滚动视高时显示。  horizontalScrollbar 用于水平滚动条的可选 GUIStyle。如果不设置,将使用当前 GUISkin 的 horizontalScrollbar。  verticalScrollbar  用于垂直滚动条的可选 GUIStyle。如果不设置,将使用当前 GUISken 的 verticalScrollbar 风格。  返回 Vector2  –  修改过的 scrollPosition。回传这个变量,如下的例子:  描述:开始一个自动布局滚动视。  自动布局滚动视,将使用任何你放置在它们中的内容并正常显示出来。如果他不适合,     将显示滚动条,BeginScrollView 的调用总是与 EndScrollView 的调用匹配。  //这个变量对于空间来说就是这个滚动视查看子元素的位置。  var scrollPosition : Vector2;  //显示在滚动视中的字符串,下面两个按钮添加,清除这个字符串。  var longString = “This is a long‐ish string”;  function OnGUI()  {    //开始一个滚动视,所有矩形被自动计算。    //它将使用任何可用的空间并确保内容排列正确    //这是小的最后两参数来强制滚动条出现    scrollPosition  =  GUILayout.BeginScrollView(scrollPosition,  GUILayout.Width(100),   GUILayout.Height(100));    //添加一个简单的标签到滚动视内部。注意    //滚动条如何与文字换行正确的工作。    GUILayout.Height(longString);    //添加一个按钮来消除字符串。这个是在滚动区域内部,因此它    //也将被滚动。注意按钮如何变窄为垂直滚动条留出空间    if(GUILayout.Button(“Clear”)  longString = “”;    //结束我们上面开始的滚动条    GUILayout.EndScrollView();    //现在我们在滚动视外边添加一个按钮  –  这将显示在滚动区域的下边    if(GUILayout.Button(“Add MoreText”))  {    longString += “\nHere is another line.”;  }  ◆  static function Box(params option : GUILayoutOption[]) : void  ◆  static function Box(style : GUIStyle, params option : GUILayoutOption[]) : void    参数    style 这个风格将用于背景图片和填充值,如果留空,背景是透明的。  options   一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里 设置的值将覆盖由 style 定义的设置。    参见:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth,  GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILa yout.ExpandWidth,  GUILayout.ExpandHeight.  描述:开始一个垂直控件组。  所有在这个元素内部渲染的空间将被一个接一个地垂直放置。改组必须调用 EndVertical 关闭。  ◆  static function Box(image : Texture, params option : GUILayoutOption[]) : void  ◆  static function Box(text : string, params option : GUILayoutOption[]) : void  ◆  static function Box(contend : GUIContent, params option : GUILayoutOption[]) : void  ◆  static  function  Box(image  :  Texture,  style  :  GUIStyle,  pa rams  option  :  GUILayoutOption[]) : void  ◆  static function Box(text : string, style : GUIStyle, params option : GUILayoutOption[]) :      void  ◆  static  function  Box(contend  :  GUIContent,  style  :  GUIStyle,  params  option  :  GUILayoutOption[]) : void    参数    text 显示在该 box 上的文本    image 显示在该 box 上的 Texture    content 用于这个 box 的文本,图形和提示  style 使用的风格。如果不设置,将使用当前的 GUISkin 的 box 风格。  options   一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里 设置的值将覆盖由 style 定义的设置。    参见:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth,  GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth,  GUILayout.ExpandHeight.  描述:制作一个自动布局 box  这将制作一个实心 box,如果你想制作一个包含一些内容的 box,使用一个子组函数的  风格参数(BeginHorizontal, BeginVertical,  等等)  ◆  static function Button(image : Texture, params options : GUILayoutOption[]) : bool  ◆  static function Button(text : string, params options : GUILayoutOption[]) : bool  ◆  static function Button(content : GUIContent, params options : GUILayoutOption[]) :  bool  ◆  static  function  Button(image  :  Texture,  style  :  GUIStyle,  params  options  :  GUILayoutOption[]) : bool  ◆  static  function  Button(text  :  string,  style  :  GUIStyle,  params  options  :  GUILayoutOption[]) : bool  ◆  static  function  Button(content  :  GUIContent,  style  :  GUIStyle,  params  options  :  GUILayoutOption[]) : bool    参数    text 显示在该按钮上的文本    image 显示在该按钮上的 Texture    content 用于这个按钮的文本,图形和提示。    style 使用的风格。如果不设置,将使用当前的 GUISkin 的 button 风格。  options   一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里 设置的值将覆盖由 style 定义的设置。  参见:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth,  GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth,  GUILayout.ExpandHeight    返回 bool  –  true 当用户单击按钮时。    描述:制作一个简单的按钮,用户点击它们的时候就会有事情发生。  ◆  static functioin EndArea() : void    描述:关闭由 BeginArea 开始的 GUILayout 块  ◆  static function EndHorizontal() : void    描述:关闭一个开始于 BeginHorizontal 的组  ◆  static functioin EndScrollView() : void    描述:结束由 BeginScrollView 调用开始的滚动视。      ◆  static functioin EndVertical() : void    描述:关闭一个开始于 BeginVertical 的组  ◆  static functioin ExpandHeight(expand : bool) : GUILayoutOption    描述:传递给一个空间的选项来允许或不允许垂直扩展。  ◆  static functioin ExpandWidth(expand : bool) : GUILayoutOption    描述:传递给一个空间的选项来允许或不允许水平扩展。  ◆  static functioin FlexibleSpace() : void    描述:插入一个灵活的空格元素    灵活的空格用来填充一个布局中任何遗漏的空间。  ◆  static functioin Height(height : float) : GUILayoutOption    描述:传递给空间的选项以便给它一个绝对高度。  ◆  static  functioin  HorizontalScrollbar(value  :  floa t,  size  :  float,  leftValue  :  float,  rightValue : float, params options : GUILayoutOption[]) : float  ◆  static  functioin  HorizontalScrollbar(value  :  float,  size  :  float,  leftValue  :  float,  rightValue : float, style : GUIStyle, params options : GUILayoutOption[]) : float    参数    value 在 min 和 max 之间的位置    size  能看见多大?    leftValue 滚动条左端的值    righ tValue   滚动条右端的值  style 用于滚动条背景的风格。如果不设置,将使用当前 GUISkin 的 horizontalScrollbar  options  一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里设置 的值将覆盖由 style 定义的设置。    参见:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth,  GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth,  GUILayout.ExpandHeight  返回 floar  –  修改后的值。这可以通过拖动这个滚动条,或者单击两端的箭头来改变。  描述:一个水平滚动条。滚动条可以用来滚动文档。大多数情况下,你会使用滚动视 代替。  找到额外的元素:  在滚动条两端的按钮将在当前皮肤中搜索“leftButton”和“rightButton”作为风格, 滚动条的滑块(你拖动的东西)将搜索并使用名为“thumb”的风格。  //这将使用下面的风格名来决定该按钮的尺寸/位置  //MyScrollbarleftButton ‐  用于左侧按钮的风格位置  //MyScrollbarrightButton ‐  用于右侧按钮的风格位置  //MyScrollbarthumb ‐  用于滑块的风格名称  scrollPos = GUILayout.HorizontalScrollbar(scrollPos, 1, 0, 100, “MyScrollbar”);  ◆  static  functioin  HorizontalSlider(value  :  float,  leftValue  :  float,  rightValue  :  float,  params options : GUILayoutOption[]) : float  ◆  static functioin HorizontalSlider(value : float, leftValue : float, rightValue : float, slider :  GUIStyle, thumb : GUIStyle, params options : GUILayoutOption[]) : float    参数    value 滑块显示的值。这个决定可拖动滑块的位置。    leftValue 滑杆左端的值。      rightValue   滑杆右边的值。  slider 用于显示拖动区域的 GUIStyle 。如果不设置,将使用当前 GUISkin 的 horizontalSlider。       thumb   用于显示拖动块的 GUISkin。如果不设置,将使用当前的 GUISkin 的 horizontalSliderThumb  options   一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里 设置的值将覆盖由 style 定义的设置。    参见:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth,  GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth,  GUILayout.ExpandHeight.  返回 float  –  被用户设置的值。  描述:一个用户可以拖动的滑杆。可以在 min 和 max 之间取一个值。  ◆  static function Label(image : Texture, params options : GUILayoutOption[]) : void  ◆  static function Label(text : string, params options : GU ILayoutOption[]) : void  ◆  static  function  Label(content  :  GUIContent,  params  options  :  GUILayoutOption[])  :  void  ◆  static  function  Label(image  :  Texture,  style  :  GUIStyle,  params  options  :  GUILayoutOption[]) : void  ◆  static  function  Label(text  :  string,  style  :  GUIStyle,  params  options  :  GUILayoutOption[]) : void  ◆  static  function  Label(content:  GUIContent,  style  :  GUIStyle,  params  options  :  GUILayoutOption[]) : void    参数    text 显示在该标签上的文本。    image 显示在标签上的 Texture。    content 用于这个标签的文本,图形和提示。    style 使用的风格。如果不设置。将使用当前 GUISkin 的 label。  options   一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里 设置的值将覆盖由 style 定义的设置。    参见:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth,  GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth,  GUILayout.ExpandHeight.    描述:制作一个自动布局 label    标签没有用户交互。不会获取鼠标点击并总是以普通风格渲染。如果你想制作一 个可视化响应用户输出的控件,使用一个 Box 控件。  ◆  static function MaxHeight(maxHeight : float) : GUILayoutOption    描述:传递给控件的选项来指定一个最大高度。  ◆  stat ic function MaxWidth(maxWidth : float) : GUILayoutOption    描述:传递给控件的选项来指定一个最大宽度。  ◆  static function MinHeight(minHeight : float) : GUILayoutOption    描述:传递给控件的选项来指定一个最小高度。  ◆  static function MinWidth(minWidth : float) : GUILayoutOption        描述:传递给控件的选项,来指定一个最小宽度  ◆  static function PasswordField(password : string,  maskChar : char, params options :  GUILayoutOption[]) : string  ◆  static function PasswordField(password : string,  maskChar : char, maxLength : int,  params options : GUILayoutOption[]) : string  ◆  static function PasswordField(password : string,  maskChar : char, style : GUIStyle,  params options : GUILayoutOption[]) : st ring  ◆  static function PasswordField(password : string,  maskChar : char, maxLength : int,  style : GUIStyle, params options : GUILayoutOption[]) : string    参数  password 用于编辑的密码。这个函数返回值应该被赋回这个字符串。如下的例子。  maskChar  用来隐藏密码的字符。  maxLength  字符串的最大长度。如果不设置,用户可以一直输入。  style 使用的风格。如果不设置,将使用当前 GUISkin 的 textField 风格。  返回 string  –  编辑过的密码。  描述:制作一个用户可以输入密码的文本域。  var passwordToEdit = “My Password”;  function OnGUI()  {//  制作一个密码与来调整 stringToEdit。    passwordToEdit = GUILa yout.PasswordField(passwordToEdit, “*”, 25);  }  ◆  static function RepeatButton(image : Texture, params options : GUILayoutOption[]) :  bool  ◆  static function RepeatButton(text : string, params options : GUILayoutOption[]) : bool  ◆  static  function  RepeatButton(content  :  GUIContent,  params  options  :  GUILayoutOption[]) : bool  ◆  static  function  RepeatButton(image  :  Texture,  style  :  GUIStyle,  params  optio ns  :  GUILayoutOption[]) : bool  ◆  static  function  RepeatButton(text  :  string,  style  :  GUIStyle,  params  options  :  GUILayoutOption[]) : bool  ◆  static function RepeatButton(content : GUIContent, style : GUIStyle, params options :  GUILayoutOption[]) : bool    参数    text 显示在该按钮上的文本。    image   显示在该按钮上的 Texture。    content   用于这个按钮的文本,图形和提示。    style 使用的风格,如果不设置,将使用当前 GUISkin 的 button 风格。     options   一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里 设置的值将覆盖由 style 定义的设置。    参见:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth,  GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth,  GUILayout.ExpandHeight.    返回 bool ‐ /true/当用户按住按钮时        描述:制作一个重复按钮,只要用户按住鼠标这个按钮一直返回真。  ◆  static function SeletionGrid(selected : int, texts : string[], xCount : int, params options :  GUILayoutOption[]) : int  ◆  static  function  SeletionGrid(selected  :  int,  images  :  Texture[],  xCount  :  int,  params  options : GUILayoutOption[]) : int  ◆  static  function  SeletionGrid(selected  :  int,  contents  :  GUIContent[],  xCount  :  int,  params options : GUILayoutOption[]) : int  ◆  static function SeletionGrid(selected : int, texts : string[], xCount : int, style : GUIStyle,  params options : GUILayoutOption[]) : int  ◆  static  function  SeletionGrid(selected  :  int,  images  :  Texture[],  xCount  :  int,  style  :  GUIStyle, params options : GUILayoutOption[]) : int  ◆  static function SeletionGrid(selected : in t, contents : GUIContent[], xCount : int, style :  GUIStyle, params options : GUILayoutOption[]) : int    参数    selected 选择按钮的索引    texts  显示在按钮的字符串数组。    images 在按钮上纹理数组    contents 用于按钮的文本,图形和提示。  xCount   在水平方向多少个元素,元素将被缩放来适应,除非风格定义了一个 fixedWidth,空间高度将由元素的数量决定。  style 使用的风格。如果不设置,将使用当前 GUISkin 的 button 风格。  options  一个可选的布局选项的列表,它用来指定额外的布局属性。任何在这里设置 的值将覆盖由 style 定义的设置。  参见:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth,  GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth,  GUILayout.ExpandHeight.  返回 int  –  选择按钮的索引  描述:制作一个选择网格  ◆  static function Space(pixel : float) : void    描述:在当前布局组中插入一个空格    空格的方向依赖与使用这个命令时当前所在布局组。如果在垂直组,空格是垂直 的。    function OnGUI()    {    GUILayout.Button(“I’m the first button”);    //在两个按钮间插入 20 像素    GUILayout.Space(20);     }    GUILayout.Button(“I’m a bit futher down”);  }    在水平组,pixels 将是水平的;    function OnGUI()    {        //开始水平组以便显示水平空格    GUILayout.BeginHorizontal(“box”);    GUILayout.Button(“I’m the first button”);    //在两个按钮间插入 20 像素    GUILayout.Space(20);    GUILayout.Button(“I’m to the right”);    //结束上面开始的水平组    GUILayout.EndHorizontal();  }  ◆  static function TextArea(text : string, params options : GUILayoutOption[]) : string  ◆  static  function  TextArea(text  :  string,  maxLength  :  int,  params  options  :  GUILayoutOption[]) : string  ◆  static  function  TextArea(text  :  string,  style  :  GUIStyle,  params  options  :  GUILayoutOption[]) : string  ◆  static  function  TextArea(text  :  string,  maxLength  :  int,  style  :  GUIStyle,  params  options : GUILayoutOption[]) : string    参数  text   用于编辑的文本。这个函数返回值应该被赋回这个字符串。如下的例子。  maxLength   字符串的最大长度。如果不设置,用户可以一直输入。  style 使用的风格。如果不设置,则使用当前 GUISkin 的 textField 风格。  options  一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里设置 的值将覆盖由 style 定义的设置。  参见:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth,  GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth,  GUILayout.ExpandHeight.    返回 string  –  编辑过的字符串。    描述:制作一个多行文本域。这里用户可以编辑这个字符串。  ◆  static function TextField(text : string, params options : GUILayoutOption[]) : string  ◆  static  function  TextField  (text  :  string,  maxLength  :  int,  params  options  :  GUILayoutOption[]) : string  ◆  static  function  TextField  (text  :  string,  style : GUIStyle,  params  options  :  GUILayoutOption[]) : string  ◆  stat ic  function  TextField  (text  :  string,  maxLength  :  int,  style  :  GUIStyle,  params  options : GUILayoutOption[]) : string    参数  text   用于编辑的文本。这个函数返回值应该被赋回这个字符串,如下的例子。     maxLength   字符串的最大长度。如果不设置,用户可以一直输入。    style 使用的风格。如果不设置,将使用当前的 GUISkin 的 textArea  options   一个可选的布局选项的列表,它用来指定额外的布局属性。任何在这里 设置的值将覆盖由 style 定义的设置。  参见:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth,  GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth,  GUILayout.ExpandHeight.      返回 string  –  编辑过的字符串。  描述:制作一个单行文本域。这里用户可以编辑这个字符串。  var stringToEdit = “Hello, world”;  function OnGUI()  {    //制作一个文本域来调整 stringToEdit    stringToEdit = GUILayout.TextField(stringToEdit, 25);  }  ◆  static  function  Toogle(value  :  bool,  image  :  Texture,  params  options  :  GUILayoutOption[]) : bool  ◆  static function Toogle(value : bool, text : string, params options : GUILayoutOption[]) :  bool  ◆  stat ic  function  Toogle(value  :  bool,  content  :  GUIContent,  params  options  :  GUILayoutOption[]) : bool  ◆  static function Toogle(value : bool, image : Texture, style : GUIStyle, params options :  GUILayoutOption[]) : bool  ◆  static  function  Toogle(value  :  bool,  text  :  string,  style  :  GUIStyle,  params  options  :  GUILayoutOption[]) : bool  ◆  static  function  Toogle(value  :  bool,  content  :  GUIContent,  style  :  GUIStyle,  params  options : GUILayoutOption[]) : bool      参数    value 按钮是打开或关闭    text 显示在该按钮上的文本    image 显示在该按钮上的 Texture    content 用于这个按钮的文本,图形和提示    style 使用的风格。如果不设置,将使用当前 GUISkin 的 button 风格。  options   一个可选的布局选项的列表,它用来指定额外的布局属性。任何在这里 设置的值将覆盖由 style 定义的设置。  参见:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth,  GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth,  GUILayout.ExpandHeight.    返回 bool  –  按钮的新值    描述:制作一个 on/off 开关按钮。    ◆  static  function  Toolbar(selected:  int,  texts  :  string[],  params  options  :  GUILayoutOption[]) : int  ◆  static  function  Toolbar(selected:  int,  images  :  Texture[],  params  options  :  GUILayoutOption[]) : int  ◆  static  function  Toolbar(selected:  int,  contents:  GUIContent[],  params  options  :  GUILayoutOption[]) : int  ◆  static function Toolbar(selected: int, texts : string[], st yle : GUIStyle, params options :  GUILayoutOption[]) : int  ◆  static  function  Toolbar(selected:  int,  image  :  Texture[],style  :  GUIStyle,  params      options : GUILayoutOption[]) : int  ◆  static function Toolbar(selected: int, content : GUIContent[],style : GUIStyle, params  options : GUILayoutOption[]) : int    参数    selected 选择按钮的索引    texts  显示在按钮上的字符串数组    images 在按钮上的纹理数组    contents 用于按钮的文本,图形和提示数组    style 使用的风格。如果不设置,将使用当前 GUISkin 的 button 风格。  options  一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里设置 的值将覆盖由 style 定义的设置。  参见:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth,  GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth,  GUILayout.ExpandHeight.    返回 int  –  选择按钮的索引    描述:制作一个工具栏  ◆  static  function  VerticalScrollbar(value:  float,  size  :  float,  topValue  :  float,  buttomValue : float, params options : GUILayoutOption[]) : float  ◆  static  function  VerticalScrollbar(value:  float,  size  :  float,  topValue  :  float,  buttomValue : float, style : GUIStyle, params options : GUILayoutOption[]) : float    参数    value 在 min 和 max 之间的位置    size  能看见多大?    topValue 滚动条顶端的值    bottomValue   滚动条底端的值  style   用于滚动条背景的风格。如果不设置,将使用当前 GUISkin 的 horizontalScrollbar。  options  一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里设置 的值将覆盖由 style 定义的设置。  参见:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth,  GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth,  GUILayout.ExpandHeight.  返回 float  –  修改后的值。这可以通过拖动这个滚动条,或者单击两端的箭头来改变。    描述:制作一个垂直滚动条。滚动条可以用来滚动文档。大多数情况下,你会使 用 scollView 代替。    找到额外的元素:    在滚动条两端的按钮将在当前皮肤中搜索“upbutton”和“downbutton”作为风 格。滚动条的滑块(你拖动的东西)将搜索并使用名为 thumb 的风格。    //这将使用下面的风格名来决定该按钮的尺寸/位置    //MyVerticalScrollbarupbutton  –  用于顶端按钮的风格名称    //MyVerticalScrollbardownbutton  –  用于底端按钮的风格名称    //MyScrollbarthumb  –  用于滑块的风格名称    scrollPos = GUILayout.HorizontalScrollbar(scrollPos, 1, 0, 100, “MyVerticalScrollbar”);  ◆  static function VerticalSlider(value : floar, leftValue : float, rightValue : float, params      options : GUILayoutOption[]) : float  ◆  static function VerticalSlider(value : floar, leftValue : float, rightValue : float, slider :  GUIStyle, thumb : GUIStyle, params options : GUILayoutOption[]) : float    参数    value 滑杆显示的值。这个决定可拖动滑块的位置。    topValue 滑杆顶端的值。    downValue   滑杆底端的值。  slider   用于显示拖动区域的 GUIStyle。如果不设置,将使用当前 GUISkin 的 horizontalSlider。  thumb   用于显示拖动块的 GUIStyle。如果不设置,将使用当前的 GUISkin 的 horizontalSliderThumb。  options   一个可选的布局选项的列表,它用来指定额外的布局属性。任何在这里 设置的值将覆盖由 style 定义的设置。  参见:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth,  GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth,  GUILayout.ExpandHeight.  ◆  static function Width(width : float) : GUILayoutOption    描述:传递给控件的选项以便给它一个绝对宽度  ◆  static function Window(id : int, screenRect : Rect, func : GUIWindowFunction, text :  string) : Rect  ◆  static function Window(id : int, screenRect : Rect, func : GUIWindowFunction, image :  Texture) : Re ct  ◆  static  function  Window(id  :  int,  screenRect  :  Rect,  func  :  GUIWindowFunction,  content : GUIContent) : Rect  ◆  static function Window(id : int, screenRect : Rect, func : GUIWindowFunction, text :  string, style : GUIStyle) : Rect  ◆  static function Window(id : int, screenRect : Rect, func : GUIWindowFunction, image :  Texture, style : GUIStyle) : Rect     ◆  static  function  Window(id  :  int,  screenRect  :  Rect,  func  :  GUIWindowFunction,  content : GUIContent, style : GUIStyle) : Rect    参数    id  用于每个窗口唯一的 ID。这是用于接口的 ID。  clientRect  屏幕上用于窗口的矩形区域。布局系统将试图使窗体在他内部。如 果不能,它将调整矩形去适应它  func   在窗体内部创建 GUI 的函数。这个函数必须使用一个函数  –  当前创建 GUI 的窗体 id。  image  用于在标题栏上显示图片的 Texture。  content  用于这个窗口的文本,图形和提示。  style 使用的风格。如果不设置,将使用当前 GUISkin 的 button 风格。  options   一个可选的布局选项的列表,它用来指定额外的布局属性。任何在这里 设置的值将覆盖由 style 定义的设置。  参见:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth,  GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth,      GUILayout.ExpandHeight.  返回 Rect  –  窗口位于举行位置。这个可能与你传入的一个具有不同位置和尺寸。  描述:制作一个弹出窗口。它的内容是自动布局的。  窗口浮动在普通 GUI 控件之上。具有单击激活的特点并可以有选择的随意被用户拖动。 不像其他的控件,你需要传递给他们一个独立的功能并放置在窗口中这儿是一个小例子来 帮助你开始:  var windowRect = Rect(20, 20, 120, 50);    function OnGUI()  {    //注册窗口,注意第三个参数    windowRect = GUILayout.Window(0, windowsRect, DoMyWindow, “My Window”);  }    //制作窗口内容  function DoMyWindow(windowed : int)  {    //这个按钮将调整以适应物体    if(GUILayout.Button(“Hello World”))    print(“Get a click”);  }  你传入的客户区域只是作为一个参考,为了对窗口使用额外的限制。闯入一些额外的 布局选项。用在这里的一个将覆盖尺寸的计算。这是一个简单的例子。  var windowRect = Rect(20, 20, 12 0, 50);    function OnGUI()  {    //注册窗口,这里我们指示布局系统必须使窗体为 100 像素宽。    windowRect  =  GUILayout.Window(0,  windowRect,  DoMyWindow,  “My  Window”,  GUILayout.width(100));  }    //制作窗体内容  function DoMyWindow(windowID : int)  {    //这个按钮大小不能适应这个窗体  //通常,这个窗体将被扩展以便适应这个按钮。但是由于 GUILayout.Width 将只允//许 窗体为 100 像素宽  if(GUILayout.Button(“Please click me a lot”))    print(“Get a click”);     }  GUISettings    类        用于 GUI 如何表现的通用设置。    这些被所有在 GUISkin 中的元素共享。  变量  ◆  var cursorColor : Color    描述:文本域中光标的颜色。  ◆  var cursorFlashSpeed : float    描述:文本域指示的闪动速度。    这个是闪动/秒。如果设置为 0,闪动将被禁用。如果设置为‐1,闪动速度将匹配 系统的默认速度。  ◆  var doubleClickSelectsWord : bool    描述:文本域中双击是否选择单词。  ◆  var selectionColor : Color    描述:文本域中选择矩形的颜色。  ◆  var tripleClickSelectsLine : bool    描述:文本域中点击鼠标三次是否选择整行文本。  GUIStyleState    类    为 GUIStyle 物体使用的给定状态的一个特定值。    GUIStyle 包含用于显示 GUI 元素 的所有值  变量  ◆  var background : Texture2D    描述:在这个状态中被 GUI 元素使用的背景图片。  ◆  var textColor : Color    描述:在这个状态中被 GUI 元素使用的文本颜色。  GUIStyle  类  GUI 元素的风格位置  这个类包含一个 GUI 元素如何被渲染的所有信息。它包含用于字体,图标位置,背景 图标,和间距的信息。它不包含关于它包含什么的信息  –  仅仅定义用这个风格渲染的文 本如何被显示。它不定义这个元素可以发生什么交互,但是定义了用于交互的显示设置。  一个 GUIStyle 的设置。这是模仿一个 CSS 样式。它包含下列事项的设置:  背景图片    这些被渲染在空间后面。不同的图像可以被指定为正常显示。当用户将鼠标放在 元素上时的显示,当使用者按下选择  –  以及当元素被打开,如触发按钮,下面的这些都 被称为风格的状态。参见:normal, hover, active, onNormal, onHover, onActive  –  这些包含 每个状态的背景图片,文本颜色属性。  文本渲染    这个风格都可以定义一个字体渲染,以及文本对齐,换行和剪裁的设置,它也定 了该风格元素不同状态的文本颜色参考  : font, alignment, wordWrap, normal, hover, activ e,  onHover, onActive  图标位置    GUIStyle 可以渲染文本,图标或者两者兼而有之。GUIStyle 定义渲染时这两者间的 相关位置(这可以强制它只显示他们其中之一)。参见:imagePosition  尺寸和间距选项        GUIStyle 包含填充,边缘和边界。这些不严格地对应类似命名的 CSS 属性。一个 GUIStyle 可以选择的定义一个固定的宽度和高度。参见:margin, padding, border, fixedWidth,  fixedHieght  变量  ◆  var active : GUIStyleState    描述:空间被按下时的渲染设置。  ◆  var alignment : TextAnchor    描述:文本对齐  ◆  var border : RectOffset    描述:所有背景图片的边界。    这个对应于 GUITexture 的边界设置。它只影响渲染的背景图像,不影响定位。  ◆  var clipOffset : Vector2    描述:用于该 GUIStyle 内容的剪裁偏移。  ◆  var clipping : TextClipping    描述:当渲染的内容相对于给定的区域太大时做什么  ◆  var contentOffset : Vector2    描述:用于该 GUIStyle 内容的像素偏移。  ◆  var fixedHeight : float    描述:如果非 0,任何用这个风格渲染的 GUI 元素将有这里指定的高度。  ◆  var fixedWidth : float    描述:如果非 0,任何用这个风格渲染的 GUI 元素将有这里指定的宽度。  ◆  var focused : GUIStyleState    描述:元素获得键盘焦点时的渲染设置。  ◆  var font : Font    描述:用于渲染的字体。如果 null,当前的 GUISkin 的默认字体将被使用。  ◆  var hover : GUIStyleState    描述:鼠标悬停在控件时的渲染设置。  ◆  var imagePosition : ImagePosition    描述:GUIContent 的图片和文本如何组合。  ◆  var lineHeight  : float    描述:这个风格一行文本的高度。以像素为单位。(只读)  ◆  var margin : RectOffset    描述:以这种风格渲染的元素和任何其他 GUI 元素之间的边界。  这个只影响自动布局。(参见  : GUILayout)  ◆  var name : string    描述:GUIStyle 的名称。用来基于名称获取它们。  ◆  var normal : GUIStyleState    描述:组建正常显示是渲染设置。  ◆  var onActive : GUIStyleState    描述:元素被打开并具有键盘焦点时的渲染设置。  ◆  var onFocused : GUIStyleState    描述:元素被打开并被按下时的渲染设置。  ◆  var onHover : GUIStyleState    描述:控件被打开并且鼠标悬停在它上面时的渲染设置      ◆  var onNormal : GUIStyleState    描述:控件被打开时的渲染设置。  ◆  var overflow : RectOffset    描述:添加到背景图片的额外间距。    这可用于如果你的图片要投射一个阴影,并且向扩展背景图片超出使用这个风格 的制定 GUI 元素的矩形时。  ◆  var padding : RectOffset    描述:从 GUIStyle 边界到内容开始的间距  ◆  var stretchHeight : bool    描述:这个风格的 GUI 元素可以被垂直拉伸以便更好的布局么?  ◆  var stretchWidth : bool    描述:这个风格的 GUI 元素可以被水平拉伸以便更好的布局么?  ◆  var wordWrap : bool    描述:文本换行?    这将导致任何包含的文本被换行以便适应控件的宽度。  构造函数  ◆  static function GUIStyle() : GUIStyle    描述:  ◆  static function GUIStyle(other:GUIStyle) : GUIStyle    描述:  函数  ◆  function CalcHeight(content : GUIContent, width : float) : float    描述:当渲染 content 并制定 width 时这个元素的高度。  ◆  function  CalcMinMaxHeight  (content  :  GUIContent,  outminWidth  :  float,  outmaxWidth : float) : void    描述:计算以这个风格渲染的 content 的最大最小宽度。    被 GUILayout 使用来正确处理换行。  ◆  function CalcScreenSize(contentSize : Vector2) : Vector2    描述:计算用这个风格格式化的元素的尺寸,和一个给定的内容空格。  ◆  function CalcSize(content : GUIContent) : Vector2    描述:如果内容使用这个风格渲染,计算某些内容的尺寸。    这个函数不考虑换行。要做到这点,你需要确定宽度,然后打调用 CalcHeight 分配 计算出 wordwrapped 高度。  ◆  function  Draw(position  :  Rect,  isHover:  bool,  isActive  :  bool,  on  :  bool,  hasKeyboardFocus : bool) : void    描述:  ◆  function Draw(position : Rect, text : string, isHover: bool, isActive : bool, on : bool,  hasKeyboardFocus : bool) : void    描述:用 GUIStyle 绘制一个文本字符串。  ◆  function Draw(position : Rect, image : Texture, isHover: bool, isActive : bool, on : bool,  hasKeyboardFocus : bool) : void    描述:用 GUIStyle 绘制图片。如果图片太大,它将被缩小。  ◆  function Draw(position : Rect, content : GUIContent, isHover: bool, isActive : bool, on :  bool, hasKeyboardFocus : bool) : vo id        描述:用 GUIStyle 绘制文本和图片。如果图片太大,它将被缩小。  ◆  function Draw(position : Rect, content : GUIContent, controlID : int, on : bool = false) :  void    描述:GUI 代码中使用的主要绘制函数。  ◆  function DrawCursor(position : Rect, content : GUIContent, controlID : int, Character :  int) : void    描述:用选定的内容绘制这个 GUIStyle  ◆  function DrawWithTextSelection(position : Rect, content : GUIContent, controlID : in t,  firstSelectedCharacter : int, lastSelectedCharacter : int) : void    描述:用选定的内容绘制这个 GUIStyle  ◆  function  GetCursorPixelPosition(position  :  Rect,  content  :  GUIContent,  cursorStringIndex : int) : Vector2    描述:获取给定字符串索引的像素位置。  ◆  function  GetCursorStringIndex(postion  :  Rect,  content  :  GUIContent,  cursorPixelPosition : Vector2) : int    描述:当用户在 cursorPixelPosition 处点击时获取光标位置(索引到内容文本)这 部计算内容中任何图片。  类变量  ◆  static var none : GUIStyle    描述:空 GUIStyle 的快捷方式。    这个风格不包含装饰而仅仅以缺省字体渲染所有东西。    function OnGUI()    {   //制作一个没有装饰的按钮    GUI.Button(“I’m very bare”, GUIStyle.none);  }  类方法  ◆  static implicit function GUIStyle(str : string) : GUIStyle    描述:从当前皮肤获取一个名为 GUI 风格。  GUIUtility    类    用于制作新 GUI 空间的工具类。    除非从头开始创建自己的 GUI 控件,否则你不需要使用这些函数。  类变量  ◆  static var hotControl : int    描述:当前具有特点的控件 controlID。    热点空间是临时激活的一个控件。当用于在一个按钮上按下鼠标时,它变为热点。 当一个控件具有热点时,其他控件不允许响应鼠标事件。一旦用户鼠标示范,这个控件设 置 hotControl 为 0 以便表明其他控件可以响应用户输入。    ◆  static var keyboardControl : int    描述:具有键盘焦点控件的 controlID。  类方法  ◆  static function GetControlID(focus : FocusType) : int  ◆  static function GetControlID(hint : int, focus : FocusType) : int      ◆  static function GetControlID(content : GUIContent, focus : FocusType) : int    描述:为一个控件获取唯一 ID。  ◆  static function GetControlID(focus : FocusType, position : Rect) : int  ◆  static function GetControlID(hint : int, focus : FocusType, position : Rect) : int  ◆  static function GetControlID(content : GUIContent, focus : FocusType, position : Rect) :    int  描述:为一个控件获取唯一 ID。  ◆  static function GetStateObject(t : type, controlID : int) : object    描述:从一个 controlID 获取一个状态对象。    这将返回一个可重用的状态对象,它的 controlID 是唯一的。如果没有,一个新的 将被创建并添加到 ControlID。  ◆  static function GUIToScreenPoint(guiPoint : Vector2) : Vector2    描述:将一个点从 GUI 位置转化为屏幕空间。    参见:GUIUtility, ScreenToGUIPoint  ◆  static function MoveNextAndScroll(forward: bool) : void    描述:只允许从 OnGUI 内部调出 GUI 函数  ◆  static function QueryStateObject(t: Type, co ntrolID : int) : object    描述:从一个 controlID 获取一个存在的状态物体。    这个返回一个可回收的状态物体。这个物体具有唯一的 controlID。如果没有,这 个函数将返回 null。  ◆  static function RotateAroundPivot(angle: float, pivotPoint : Vector2) : void    描述:使 GUI 围绕一个点旋转的辅助函数。    修改 GUI.matrix 来绕着 pivotPoint 旋转所有的 GUI 元素 angel 度。    参见:GUI.matrix, ScaleAroundPivot  ◆  static function ScaleAroundPivot(scale: Vector2, pivotPoint: Vector2) : void    描述:使 GUI 围绕一个点缩放的辅助函数。    修改 GUI,.matrix 来绕着 pivotPoint 缩放所有的 GUI 元素 angel 度。    参见:GU I.matrix, RotateAroundPivot  ◆  static function ScreenToGUIPoint(screenPoint : Vector2) : object    描述:将一个点从屏幕空间转化为 GUI 位置。    用于反转计算 GUIToScreenPoint 的值。    参见:GUIUtility.GUIToScreenPoint。  GUI  类    GUI 类是 Unity GUI 的手工定位接口    参见:GUI tutorial  类变量  ◆  static var backgroundColor : Color    描述:全局的修改由 GUI 渲染的所有元素的背景颜色。    这个获取多个 color。    参见:contentColor, color  ◆  static var changed : bool    描述:有任何控件的输入数据改变吗?  ◆  static var  color : Color        描述:全局的修改 GUI 颜色。    这将影响背景和文本颜色。    参见:backgroundColor, contentColor  ◆  static var contentColor : Color    描述:修改由 GUI 渲染的所有文本的颜色。    这个获取多个 color。    参见:backgroundColor : Color  ◆  static var depth : int    描述:当前执行的 GUI 行为的排序深度    当你有不同的脚本同时运行时。设置这个来决定顺序。  ◆  static var enabled : bool    描述:GUI 启用了?    设置这个值为假将禁用所有 GUI 交互。所有的控件将以半透明方式绘制。并将不 响应用户输入。    //这个值跟踪扩展的选项是否可以被打开。    var allOptions = true;    //两个扩展 选项    var extended1 = true;    var extended2 = true;    function OnGUI()  {    //制作一个开关控件以便允许用户编辑扩展的选项    allOptions = GUI.Toogle(Rect(0, 0, 150, 20), allOptions, “Edit All Options”);      //将它的值赋给 GUIEnabled  –  如果上面的复选框被禁用    //这些 GUI 元素将    GUIenabled = allOptions      //这两个控件只在上面的按钮为 On 时启用。    extended1 = GUI.Toogle(Rect(20, 20, 130, 20), extended1, “Extended Option 1”);    extended2 = GUI.Toogle(Rect(20, 40, 130, 30), extended2, “Extended Option 2”);      //使用条件语句,以使 GUI 代码可以再次启用    GUI.enabled = true;     //制作一个 OK 按钮    if(GUI.Button(Rect(0, 60, 150, 20), “OK”))  print(“user clicked ok”);  }  ◆  static var matrix : Matrix4x4    描述:GUI 变换矩阵  ◆  static var skin : GUISkin    描述:使用的全局皮肤    你可以在任何时候设置这个来改变 GUI 的外观。如果设置为 null,这个皮肤将使用 默认的 Unity 皮肤。      ◆  static var tooltip : string    描述:鼠标移动到空间上的提示信息(只读)。    创建 GUI 空间是。你可以给他传递一个提示。这可以通过改变内容参数来制作一 个自定义 GUIContent 物体,而不是仅仅传递一个字符串。    但鼠标经过带有提示性的控件时,它设置全局的 GUI.tooltip 值为传入得知。在 OnGUI 代码的末端,你可以制作一个标签来显示 GUI.tooltip 的值。    function OnGUI()  {    //制作一个按钮,它使用自定义 GUI.Content 参数来传递提示。    GUI.Button(Rect(10, 10, 100, 20), GUIContent(“Click me”, “This is the tooltip”));      //显示鼠标指向或具有键盘焦点的控件提示    GUI.Button(Rect(10, 55, 100, 20), “No tooltip here”);  }    你可以使用元素的次序来创建’层次化的’提示  function OnGUI()  {    //这个 box 比随后的许多元素大,并且它有一个提示。    GUI.Box(Rect(5, 35, 110, 75), GUIContent(“Box”, “this box has a tooltip”));      这个按钮在 box 内部,但是没有提示,因此它不会覆盖这个 box 的提示。    GUI.Button(Rect(10, 55, 100, 20), “No tooltip here”);        这个按钮在 box 内部,并且有一个提示,因此它会覆盖这个 box 的提示。  GUI.Button(Rect(10, 80, 100, 20), GUIContent(“I have a tooltip”, “This button overrides the  box”));  //最后,显示来自鼠标指向或具有键盘焦点的提示  GUI.Label(Rect(10, 40, 100, 40), GUI.tooltip);  }  Tooltip 也能用来实现一个 OnMouseOver/OnMouseOut 消息系统:  var la stTooltip = “”;  function OnGUI()  {    GUILayout.Button(GUIContent(“Play Game”, “Button1”));    GUILayout.Button(GUIContent(“Quit”, “Button2”));      if(Event.current.type == EventType.repaint && GUI.tooltip! = lastTooltip)  {    if(lastTooltip != “”)  SendMessage(lastTooltip + “OnMouseOut”, SendMessageOptions, DontRequireReceiver);    if(GUI.tooltip != “”)  SendMessage(GUI.tooltip + “OnMouseOut”, SendMessageOptions, DontRequireReceiver);    lastTool\tip = GUI.tooltip;    }      }  类方法  ◆  static function BeginGroup(position : Rect) : void  ◆  static function BeginGroup(position : Rect, text : string) : void  ◆  static function BeginGroup(position : Rect, image : Texture) : void  ◆  static function BeginGroup(position : Rect, content : GUIContent) : void  ◆  static function BeginGroup(position : Rect, style : GUI Style) : void  ◆  static function BeginGroup(position : Rect, text : string, style : GUIStyle) : void  ◆  static function BeginGroup(position : Rect, image : Texture, style : GUIStyle) : void  ◆  static function BeginGroup(position : Rect, content : GUIContent, style : GUIStyle) :  void    参数    position 屏幕用于组的矩形区域。    text 显示在该组上的文本。    image 显示在该组上的 Texture。  content   用于这个组的文本,图形和提示。如果提供,任何鼠标点击被组捕获, 并且如果没有设置,不会渲染背景,和传递鼠标点击。  style 用于背景的风格。  描述:  开始组,必须与 EndGroup 调用匹配。  当你开始一个组时,用于 GUI 控件的坐标系统被设置为(0,  0)是组的左上角。所有控件 被附加到组。组可以嵌套  –  如果使用,子被附加到他们的父。  当你在屏幕上移动一组 GUI 元素是这是非常有用的。一个普通的用法是设计你的菜单 以适合一个特定的屏幕的尺寸。然后在更大的显示器上居中显示 GUI。  function OnGUI()  {    //约束所有的绘图在屏幕中心 800*600 的区域    GUI.BeginGroup(new Rect(Screen.width / 2 – 400, Screen.height / 2 – 300, 800, 600));    //在由 BeginGroup 定义的新坐标空间中绘制一个 box    //注意,现在(0,0)已经被移动了    GUI.Box(new Rect(0, 0, 80 0, 600), “This box is new centered! – Here you would put  your main menu”);    //需要用一个 EndGroup 来匹配所有的 BeginGroup 调用。    GUI.EndGroup();  }    参见:matrix, BeginScrollView    ◆  static  function  BeginScrollView(position  :  Rect,  scrollPostion:  Vector2,  viewRect  :  Rect) : Vector2  ◆  static function BeginScrollView(position : Rect, scrollPostion: Vector2, viewRect : Rect,  alwaysShowHorizontal : bool, alwaysShowVertical : bool) : Vector2  ◆  static function BeginScrollView(position : Rect, scrollPostion: Vector2, viewRect : Rect,  horizontalScrollbar : GUIStyle, verticalScrollbar : GUIStyle) : Vector2  ◆  static function BeginScrollView(position : Rect, scrollPostion: Vector2, viewRect : Rect,      alwaysShowHorizontal  :  bool,  alwaysShowVertical  :  bool,  horizontalScrollbar  :  GUIStyle,  verticalScrollbar : GUIStyle) : Vector2    参数    position   屏幕上用了 ScrollView 的矩形区域    scrollPosition  用来显示的位置。    viewRect   用在滚动视内部的矩形。  alwaysShowHorizontal   可选的参数用来总是显示水平滚动条。如果为假或不设置, 它只在 clientRect 比 position 宽的时候显示  alwaysShowVertical  可选的参数用来总是显示垂直滚动条。如果为假或不设置,它 只在 clientRect 比 position 长的时候显示。  horizontalScrollbar 用于水平滚动条的可选 GUIStyle,如果不设置,将使用当前 GUISkin 的 horizontalScrollbar.  verticalScrollbar  用于水平滚动条的可选 GUIStyle,如果不设置,将使用当前 GUISkin 的 verticalScrollbar.  返回 Vector2  –  修改过的 scrollPosition 回传这个变量。如下的例子。  描述:在你的 GUI 中开始滚动视。  ScrollViews 让你在屏幕上制作一个较小的区域。使用放置在 ScrollView 边上的滚动条 来查看一个较大的区域。  //滚动视口的位置  var smallPosition = Vector2.zero;  function OnGUI()  {    //一个绝对位置的例子。制作一个具有较大区域的滚动视。    //并将它放置在一个小的矩形中。    scrollPosition = GUI.BeginScrollView(Rect(10, 300, 100, 100), scrollPosition, Rect(0, 0,  220, 200));    //制作四个按钮  –  每个角上有一个,由 BeginScrollView 最后一个参数定义的坐 标系统。  GUI.Button(Rect(0, 0, 100, 20), “Top‐left”);  GUI.Button(Rect(0, 0, 100, 20), “Top‐right”);  GUI.Button(Rect(0, 0, 100, 20), “Bottom‐left”);  GUI.Button(Rect(0, 0, 100, 20),  “Bottom‐right”);  //结束前面开始滚动视  GUI.EndScrollView();  }  ◆  static function Box(position : Rect, text : string) : void  ◆  static function Box(position : Rect, image : Texture) : void  ◆  static function Box(position : Rect, content : GUIContent) : void  ◆  static function Box(position : Rect, text : string, style : GUIStyle)  : void  ◆  static function Box(position : Rect, image : Texture, style : GUIStyle) : void  ◆  static function Box(position : Rect, content : GUIContent, style : GUIStyle) : void    参数    position 屏幕上用于 box 的矩形区域    text 显示在该 box 上的文本        image 显示在该 box 上的 Texture    content 用于这个 box 的文本,图形和提示    style 使用的风格。如果不设置,将使用当前 GUISkin 的 box 风格。    描述:制作一个图形 box。  ◆  static function BringWindowToBack(windowID: int) : void    参数    windowID   在 window 调用中创建窗体时使用的唯一标识。    描述:将特定的窗口放到浮动窗口的后面。  ◆  static function BringWindowToFront(windowID: int) : void    参数    windowID   在 Window 调用中创建窗体时使用的唯一标识。    描述:将特定的窗口放到浮动窗口的前面。  ◆  static function Button(position : Rect, text : string) : bool  ◆  static function Button(position : Rect, image : Texture) : bool  ◆  static function Button(position : Rect, content : GUIContent) : bool  ◆  static function Button(position : Rect, text : string, style : GUIStyle) : bool  ◆  static function Button(position : Rect, image : Texture, style : GUIStyle) : bool  ◆  static function Button(position : Rect, content : GUIContent, style : GUIStyle) : bool    参数    position 屏幕上用于按钮的矩形区域    text 显示在该按钮上的文本    image 显示在该按钮上的 Texture    content 用于这个按钮的文本,图形和提示    style 使用的风格。如果不设置,将使用当前 GUISkin 的 button 风格。    返回 bool ‐ /true/当用户单击按钮时    描述:制作一个简单的按钮,用户点击它们的时候,就会有些事情发生。  ◆  static function DragWindow(position : Rect) : void    参数    position 可以拖动的窗口部分。这个被附加到实际窗口。    描述:让窗口可拖动。    插入这个函数的在你的窗口代码中使窗口可拖动。    var windowRect = Rect(20, 20, 120, 50);       function OnGUI()    {    //注册窗体    windowRect = GUI.Window(0, windowRect, DoMyWindow, “My Window");  }  //制作窗体内容  function DoMyWindows(windowID : int)  {    //制作一个非常长的矩形,高 20 像素。    //这将使得窗口可以调整大小,通过顶部的标题栏  –  不管它有多宽。    GUI.DragWindow(Rect(0, 0, 10000, 20));      }  ◆  static function DragWindow() : void    如果你想将整个窗体背景作为一个可拖动区域,不使用参数并将 DragWindow 放 置到整体函数的最后。    这意味着任何其他类型的控件将首先被处理并且拖动将只在没有其他控件获得焦 点时使用。  ◆  static function DrawTexture(position : Rect, image : Texture, scaleMode : ScaleMode =    stretchToFill, alphaBlend : bool = true, imageAspect : float = 0) : void    参数    position 在屏幕上绘制一个内部包含有纹理的矩形。    image 需要被绘制的纹理。    scaleMode   定义了当矩形的长宽比和内部图像的长宽比不同时如何缩放图 像。    alphaBlend   定义了 alpha 值是否参与图像的混合(默认为真)。如果为假, 图像将会被绘制并显示。    imageAspect   源图像的的长宽比。如果是 0(默认值),则使用图像自身的长 宽比。    描述:在一个矩形内部绘制一个纹理。     参见:GUI.color, GUI.contentColor  ◆  static function EndGroup() : void    描述:结束一个组    参见:BeginGroup()。  ◆  static function EndScrollView : void    描述:结束一个由 BeginScrollView 开始的滚动视。  ◆  static function FocusControl(name : string) : void    描述:把键盘焦点转移到定义的控件。    参见:SetNextControlName, GetNameOfFocusedControl。  var username = "username";  function OnGUI ()   {   //  设置一个文本域中内部名称    GUI.SetNextControlName ("MyTextField");    // Make the actual text field.    username = GUI.TextField (Rect (10,10,100,20), username);    // If the user presses this button, keyboard focus will move.    if (GUI.Button (Rect (10,40,80,20), "Move Focus"))    GUI.FocusControl ("MyTextField");  }  ◆  static function FocusWindow(windowID : int) : void    参数:    windowID   当调用 Window 而创建的窗口的标识符。    描述:使一个窗口被激活。    参见:GUI.UnfocusWindow  ◆  static function GetNameOfFocusedControl() : string    描述:返回当前激活的控件的名字。控件的名字是由 SetNextControlName 函数创     建的。当有名字的控件被激活时,函数返回它的名字;否则的话返回一个空字符串。  var login = "username";  var login2 = "no action here";  function OnGUI ()   {      GUI.SetNextControlName ("user");      login = GUI.TextField (Rect (10,10,130,20), login);      login2 = GUI.TextField (Rect (10,40,130,20), login2);      if  (Event.current.Equals  (Event.KeyboardEvent  ("return"))  &&  GUI.GetNameOfFocusedControl () == "user")        {              Debug.Log ("Login");         }      if (GUI.Button (new Rect (150,10,50,20), "Logi n"))          Debug.Log ("Login");  }    参见:SetNextControlName, FocusControl    login2 = GUI.TextField(new Rect(10, 40, 130, 20), login2);  if(Event.current.Equals(Event.KeyboardEvent.(“return”))&&GUI.GetNameOfFocusedContr ol() == “user”)    Debug.log(“Login”);  if(GUI.Button(new Rect(150, 10, 50, 20), “Login”))    Debug.log(“Login”);  }    参见:SetNextControlName  ◆  static function HorizontalScrollbar(position : Rect, value : float, size : float, leftValue :  float, rightValue : float) : bo ol  ◆  static function HorizontalScrollbar(position : Rect, value : float, size : float, leftValue :  float, rightValue : float, style : GUIStyle) : bool    参数  position 屏幕上用于滚动条的矩形区域  value 在 min 和 max 之间的位置    size  能看见多大?    leftValue 滚动条左边的值    rightValue   滚动条右边的值    style 用于滚动条背景的风格。如果不设置,将使用当前 GUISkin 的 horizontalScrollbar。    返回 float  –  修改后的值。这可以通过拖动这个滚动条,或者单击两端的箭头来 改变。    描述:制作一个水平滚动条。滚动条可以用来滚动文档。大多数情况下,你会使 用 scrollViews 代替。    找到额外的元素:    在滚动条两端的按钮将在当前皮肤中搜索”leftbutton”和”rightbutton”作为风 格。滚动条的滑块(你拖动的东西)将搜索并使用名为“thumb”的风格。        //这将使用下面的风格名来决定该按钮的尺寸/位置    //MyScrollbarrightbutton  –  用于左侧按钮的风格名称    //MyScrollbarleftbutton  –  用于右侧按钮的风格名称    //MyScrollbarthumb  –  用于滑块的风格名称    scrollPos  =  HoriztontalScrollbar(Rect(0,  0,  100,  20),  scrollPos,  1,  0,  100,  “My  Scrollbar”);  ◆  static  function  HorizontalSlider(position  :  Rect,  value  :  float,  leftValue  :  float,  rightValue :   float) : float  ◆  static  function  HorizontalSlider(position  :  Rect,  value  :  floa t,  leftValue  :  float,  rightValue :   float, slider : GUIStyle, thumb : GUIStyle) : float    参数  position 屏幕上用于滑杆的矩形区域  value 滑杆显示的值。这个决定可拖动的位置。    leftValue 滑杆左边的值    rightValue   滑杆右边的值    slider 用于显示拖动区域的 GUIStyle。如果不设置,  将使用当前 GUISkin 的    horizontalSlider。    thumb 用于显示拖动块的 GUIStyle。如果不设置,  将使用当前 GUISkin 的 horizontalSliderThumb。    返回 float  –  被用户设置的值。    描述:一个用户可以拖动的滑杆。可以在 min 和 max 只见改变一个值。  ◆  static function Label(position : Re ct, text : string) : void  ◆  static function Label(position : Rect, image : Texture) : void  ◆  static function Label(position : Rect, content : GUIContent) : void  ◆  static function Label(position : Rect, text : string, style : GUIStyle) : void  ◆  static function Label(position : Rect, image : Texture, st yle : GUIStyle) : void  ◆  static function Label(position : Rect, content : GUIContent, style : GUIStyle) : void    参数    position 屏幕上用于标签的矩形区域    text 显示在该标签上的文本    image 显示在该标签上的 Texture    content 用于这个标签的文本,图形和提示    style 使用的风格。如果不设置,将使用当前 GUISkin 的 label    描述:在屏幕上制作一个文本或者纹理标签.    标签没有用户交互,不会获取鼠标点击并总是以普通风格渲染。如果你想制作一 个可视化响应用户输入的控件,使用一个 Box 控件。    例如:绘制一个传统的 Hello world 字符串    function OnGUI    {    GUI.Label(Rect(10, 10, 100, 20), “Hello world”);    }    例如:在屏幕上绘制一个纹理。标签也用于显示纹理,而不仅是字符串。简单传 递一个纹理。    var textureToDisplay : Texture2D;        function OnGUI()    {    GUI.Label(Rect(10,  40,  textureToDisplay.width,  textureToDiplay.height),  textureToDisplay);    }  ◆  static  function  PasswordField(position  :  Rect,  password  :  string,  markChar  :  char)  :  string  ◆  static  function  PasswordField(position  :  Rect,  password  :  string,  markChar  :  char,    maxLength : int) : string  ◆  static  function  PasswordField(position  :  Rect,  password  :  string,  markChar  :  char,  style :   GUIStyle) : string  ◆  static  function  PasswordField(position  :  Rect,  password  :  string,  markChar  :  char,    markChar : char, style : GUIStyle) : string    参数    position 屏幕上用于文本的矩形区域    password   用于编辑的密码。这个函数返回值应该被赋回这个字符串。如下的 例   子。    markChar  用来隐藏密码的字符。    maxLength   字符串的最大长度。如果不设置,用户可以一直输入。    style 使用的风格。不过不设置,将那个使用当前 GUISkin 的 textField 风格。    返回 string  –  编辑过的密码    描述:制作一个用户可以输入密码的文本域。    var passwordToEdit = “My Password”;      function OnGUI()    {    //制作一个文本来调整 stringToEdit。    passwordToEdit = GUI.PasswordField(Rect(10, 10, 200, 20), passwordToEdit, “*”,  25);    }    ◆  static function RepeatButton(position : Rect, text : string) : bool  ◆  static function RepeatButton(position : Rect, image : Texture) : bool  ◆  static function RepeatButton(position : Re ct, content : GUIContent) : bool  ◆  static function RepeatButton(position : Rect, text : string, style : GUIStyle) : bool  ◆  static function RepeatButton(position : Rect, image : Texture, style : GUIStyle) : bool  ◆  static function RepeatButton(position : Rect, content : GUIContent, style : GUIStyle) :  bool    参数    position   屏幕上用于按钮的矩形区域    text 显示在该按钮上的文本    image   显示在该按钮上的 Texture    content   用于这个按钮的文本,图形和提示    style 使用的风格。不过不设置,将那个使用当前 GUISkin 的 button 风格。        返回 bool ‐ /true/当用户单击按钮时。    描述:制作一个按钮。当用户按住它时一直是激活的。  ◆  static function ScrollTo(position : Rect) : void    描述:滚动所有包含在 scrollview 中的数据以便 position 可见。  ◆  static function SelectionGrid (position : Rect, selected : int, texts : string[], xCount :  int) :   int  ◆  static function SelectionGrid (position : Rect, selected : int, images : Texture[], xCount :    int) : int   ◆  static function SelectionGrid (position : Rect, selected : int, content : GUIContent[],    xCount : int) : int  ◆  static function SelectionGrid (position : Rect, selected : int, texts : string[], xCount : int,    style : GUIStyle) :  int  ◆  static function SelectionGrid (position : Rect, selected : in t, images : Texture[], xCount :  int,  style : GUIStyle) :  int  ◆  static function SelectionGrid (position : Rect, selected : int, content : GUIContent[],    xCount : int, style : GUIStyle) : int    参数    position 屏幕上用于网格的矩形区域。    selected 选择的网格按钮的索引    texts  显示在网格按钮上的字符串数组    images 显示在网格按钮上的纹理数组    contents 用于这个网格按钮的文本,图形和提示数组    xCount 在水平方向有多少个像素。空间将被缩放来适应,除非风格定义了一    个 fixWidth。    style 使用的风格。如果不设置,将使用当前 GUISkin 的 button 风格。    返回 int  –  选择按钮的索引。    描述:制作一个按钮网络。  ◆  static function SetNextControlName(name : string) : void    描述:设置下一个控件的名称。    这是接下来的控件被注册。  ◆  static function TextArea(position : Rect, text : string) : string  ◆  static function TextArea(position : Rect, text : string, maxLength : int) : string  ◆  static function TextArea(position : Re ct, text : string, style : GUIStyle) : string  ◆  static function TextArea(position : Rect, text : string, maxLength : int, style : GUIStyle) :    string    参数    position   屏幕上用于文本的矩形区域    text 用于编辑的文本。这个函数返回值应该被赋回这个字符串。如下的例子。    maxLength  字符串的最大长度。如果不设置,用户可以一直输入。    style 使用的风格。如果不设置,将使用当前 GUISkin 的 textArea。    返回 string  –  编辑过的字符串    描述:制作一个多行文本区域。这里用户可以编辑这个字符串。    var stringToEdit = “Hello World\nI’ve got  2 lines…”;    function OnGUI()        {    //制作一个多行文本区域来调整 stringToEdit    stringToEdit = GUI.TextArea(Rect(10, 10, 200, 100), stringToEdit, 200);    }  ◆  static function TextField(position : Rect, text : string) : string  ◆  static function TextField(position : Rect, text : string, maxLength : int) : string  ◆  static function TextField(position : Rect, text : string, style : GUIStyle) : st ring  ◆  static  function  TextField(position  :  Rect,  text  :  string,  maxLength  :  int,  style  :    GUIStyle) : string    参数    position   屏幕上用于文本的矩形区域    text 用于编辑的文本。这个函数返回值应该被赋回这个字符串。如下的例子。    maxLength  字符串的最大长度。如果不设置,用户可以一直输入。    style 使用的风格。如果不设置,将使用当前 GUISkin 的 textField 风格。    返回 string  –  编辑过的字符串    描述:制作一个单行文本域。这里用户可以编辑这个字符串。    var stringToEdit = “Hello World”;      function OnGUI()    {    //制作一个文本域来调整 stringToEdit    stringToEdit = GUI.TextField(Rect(10, 10, 200, 20), stringToEdit, 25);    }  ◆  static function Toggle(position : Rect, value : bool, text : string) : bool  ◆  static function Toggle(position : Rect, value : bool, image : Texture) : bool  ◆  static function Toggle(position : Rect, value : bool, content : GUIContent) : bool  ◆  static function Toggle(position : Rect, value : bool, text : string, style : GUIStyle) : bool  ◆  static function Toggle(position : Rect, value : bool, image : Texture, style : GUIStyle) :  bool  ◆  static  function  Toggle(position  :  Rect,  value  :  bool,  content  :  GUIContent,  style  :  GUIStyle) :   bool    参数    position 屏幕上用于按钮的矩形区域    value 这个按钮是打开的或关闭    text 显示在该按钮上的文本    image 显示在该按钮上的 Texture    content 用于这个按钮的文本,图形和提示    style 使用的风格。如果不设置,将使用当前 GUISkin 的 toggle 风格。    返回 bool  –  按钮的新值    描述:制作一个 on/off 开关按钮  ◆  static function Toolbar(position : Rect, selected : int, texts : string[]) : int  ◆  static function Toolbar(position : Rect, selected : int, images : Texture[]) : int   ◆  static function Toolbar(position : Rect, selected : int, contents : GUIContent[]) : int  ◆  static function Toolbar(position : Rect, selected : int, texts : string, style : GUIStyle[]) :        int  ◆  static  function  Toolbar(position  :  Rect,  selected  :  int,  images  :  Texture,  style  :  GUIStyle[]) :  int  ◆  static function Toolbar(position : Rect, selected : int, contents : GUIContent[], style :    GUIStyle) :   int    参数    position 屏幕上用于工具栏的矩形区域    selected 选择按钮的索引    texts  显示在该工具栏上的字符串数组    images 显示在工具栏按钮上的纹理数组    contents 用于这个工具栏的文本,图形和提示数组。    style 使用的风格。如果不设置,将使用当前 GUISkin 的 b utton 风格。    返回 int  –  选择按钮的索引    描述:制作一个工具栏    ◆  static function UnfocusWindows() : void    描述:从所有窗体上移除焦点。  ◆  static function VerticalScrollbar(position : Rect, value : float, size : float, topValue :  float,   buttonValue : float) : float  ◆  static function VerticalScrollbar(position : Rect, value : float, size : float, topValue :  float,   buttonValue : float, style : GUIStyle) : float    参数    position 屏幕上用于滚动条的矩形区域。    value 在 min 和 max 之间的位置。    size  能看见多大?    topValue 滚动条顶端的值    bottomValue   滚动条底端的值    style 使用的风格。如果不设置,将使用当前 GUISkin 的 horizontalScrollbar   风 格。    返回 float  –  修改后的值。这可以通过拖动这滚动条,或者单击两端的箭头来改 变。    描述:制作一个垂直滚动条。滚动条可以用来滚动文档。大多数情况下,你会使 用 scrollViews 代替。    找到额外的元素:    在滚动条两端的按钮将在当前皮肤中搜索“upbutton”和“downbutton”作为风 格。滚动条的滑块(你拖动的东西)将搜索并使用名为“thumb”的风格。    //这将使用下面的风格名来决定该按钮的尺寸位置。    //MyVertScrollbarupbutton  –  用于上端按钮的风格名称。    //MyVertScrollbardownbutton  –  用于下端按钮的风格名称。    //MyVertScrollbarthumb  –  用于滑块的风格名称。    scrollPos  =  HorizontalScrollbar(Rect(0,  0,  100,  20),  scrollPos,  1,  0,  100,  “MyVertScrollbar”);    ◆  static  function  VerticalSlider(position  :  Rect,  value  :  float,  topValue  :  float,      buttonValue :   float) : float  ◆  static  function  VerticalSlider(position  :  Rect,  value  :  float,  topValue  :  float,  buttonValue :   float, slider : GUIStyle, thumb : GUIStyle) : float    参数    position 屏幕上用于滑杆的矩形区域。    value 滑杆显示的值。这个决定可移动滑块的位置。    topValue 滑杆顶端的值    bottomValue   滑杆底端的值    slider 用于显示拖动区域的 GUIStyle。如果不设置,将使用当前 GUISkin 的 horizontalSlider。    thumb 用于显示土洞区域的 GUIStyle。如果不设置,将使用当前 GUISkin 的 horizontalSliderThumb。    返回 float  –  被用户设 置的值。    描述:一个用户可以拖动的垂直滑杆。可以在 min 和 max 之间改变一个值。  ◆  static function Window(id : int, position : Rect, func : WindowFunction, text : string) :  Rect  ◆  static  function  Window(id  :  int,  position  :  Rect,  func  :  WindowFunction,  image  :  Texture) :   Rect  ◆  static  function  Window(id  :  int,  position  :  Rect,  func  :  WindowFunction,  co ntent  :    GUIContent) : Rect  ◆  static function Window(id : int, position : Rect, func : WindowFunction, text : string,  style :   GUISytle) : Rect  ◆  static  function  Window(id  :  int,  position  :  Rect,  func  :  WindowFunction,  image  :  Texture,  style : GUIStyle) : Rect  ◆  static  function  Window(id  :  in t,  clientRect  :  Rect,  func  :  WindowFunction,  title  :    GUIContent, style : GUIStyle) : Rect    参数    id 用于每个窗口的唯一 ID。这是用于接口的 ID。    clientRect  屏幕上用于组的矩形区域。    func 在窗体内部创建 GUI 的函数。这个函数必须使用一个函数  –  当前创建    GUI 的窗体 id    text 作为窗体标签的文本。    image   用于在标题栏上显示图片的 Texture    content   用于这个窗口的文本,图形和提示。    style 用于窗口的可选风格。如果不设置,将使用当前 GUISkin 的 window。    返回 Rect  –  窗口位于的矩形位置    描述:制作一个弹出窗口    窗口浮动在普通 GUI 控件之上,具有单击激活的特点并可以有选择的随意被端用 户拖动。不像其他的控件,你需要传递给他们一个独立的功能并放置在窗口中。注意:如 果你使用 GUILayout 在窗口中放置你的组件,你应该使用 GUILayout.Window。这是一个小 例子帮助你开始:    var windowRect = Rect(20, 20, 120, 50);    function OnGUI()    {        //注册窗口。注意第三个参数。    windowRect = GUI.Window(0, windowRect, DoMyWindow, “My Window”);    }    //制作窗口内容    function DoMyWindow(windowID : int)    {    if(GUI.Button(Rect(10, 20, 100, 20), ”Hello World”))  print(“Get a click”);    }    你可以使用相同的函数来创建多个窗口。需要确保每个窗口有一个自己的 ID。例 如:    var windowRect0 = Rect(20, 20, 120, 50);    var windowRect1 = Rect(20, 100, 120, 50);    function OnGUI()     //注意窗口。我们创建了两个使用相同函数的窗体    //注意他们的 ID 不同。    windowRect0 = GUI.Window(0, windowRect0, DoMyWindow, “My Window”);    windowRect1 = GUI.Window(1, windowRect1, DoMyWindow, “My Window”)  }  //制作窗口内容  function DoMyWindow(windowID : int)  {    if(GUI.Button(Rect(10, 20, 100, 20), “Hello World”))    print(“Get a click in window ” + windowID);    //使窗口可以被拖动    GUI.DragWindow(Rect(0, 0, 10000, 10000));  }    停止显示窗口,简单的在 DoGUI 函数内停止调用 GUI.Window。  //布尔变量以决定是否显示窗口  //从游戏 GUI,脚本,检视面板中或者其他地方改变这个决定窗口是否可见。  var doWindow() = true;  //制作窗口内容  function OnGUI()  {    //制作一个开关变量来隐藏或显示窗口    doWindow() = GUI.Toggle(Rect(10, 10, 100, 20), doWindow(), “Window 0”);    //确保仅在 doWindow()为真时调用 GUI.Window    if(doWindow())    GUI.Window(0, Rect(110, 10, 200, 60), DoWindow(), “Basic Window”);  }    为了使窗口从自动 GUI 获取它的尺寸,使用 GUILayout.Window。    调用顺序    窗口需要从后向前绘制。在其他窗口顶部的窗口需要在其他窗口之后绘制。这就 意味着你不能指望你的 DoWindow 函数以任何特定的顺序被调用。为了让这个能够工作,     当你的创建窗口时下面值被存储(使用 Window 函数),当 DoWindow 被调用时取回:GUI.skin,  GUI.enabled, GUI.color, GUI.backgroundColor, GUI.contentColor, GUI.matrix    这就是说很容易像这样制作彩色窗口:    var windowRect0 = Rect(20, 20, 120, 50);    var windowRect1 = Rect(20, 100, 120, 50);    function OnGUI()    {    //这里我们制作了 2 个窗口,在这个之前设置 GUI.color 的值。    GUI.color = Color.red;    windowRect0 = GUI.Window(0, windowRect0, DoMyWindow, “Red Window”);    GUI.color = Color.green;    windowRect1  =  GU I.Window(1,  windowRect1,  DoMyWindow,  “Green  Window”);    }  //制作窗口内容  //GUI.color 的值被设置为窗口被创建之前的值。  function DoMyWindow(windowID : int)  {    if(GUI.Button(Rect(10, 20, 100, 20), “Hello world!”))    print(“Got a click in window with color ” + GUI.color);    //使窗口可以被拖动    GUI.DragWindow(Rect(0, 0, 10000, 10000));  }  提示:你可以使用 GUI.color 的 alpha 组件来淡入淡出窗口。  参见:DragWindow, BringWindowToFront, BringWindowToBack  GeometryUtility    类    用于普通集合功能的工具类  类方法  ◆  static function CalculateFrusturnPlanes(camera : Camera) : Plane[]    描述:计算视锥平面    这个函数取给定的相机视锥并返回它的六个面。    参见:Plane, GeometryUtility.TestPlanesAABB  ◆  static function CalculateFrusturnPlanes(worldToProjection : Matrix4x4) : Plane[]    描述:计算视锥平面    这个函数返回由给定的视和投影矩阵定义的视锥的六个面。    参见:Plane, GeometryUtility.TestPlanesAABB  ◆  static function TestPlanesAABB(planes : Plane[], bounds : Bounds) : bool    描述:如果包围盒在平面数组内部返回真。    如果包围盒在平面内部或者与任何平面交互返回真。    参见:GeometryUtility.CalculateFrusturnPlanes。  Gizmos    类    Gizmos 用于场景中给出一个可视化的调试或辅助设置。        所有的 Gizmos 绘制都必须在脚本的 OnDrawGizmos 或 OnDrawGizmosSelected 函数 中完成。    OnDrawGizmos 在每一帧都被调用。所有在 OnDrawGizmos 内部渲染的 Gizmos 都 是可见的。    OnDrawGizmosSelected 尽在脚本所附加的物体被选中时调用。  类变量  ◆  static var color : Color    描述:设置下次绘制的 Gizmos 的颜色。    function OnDrawGizmosSelected()    {    //在物体的前方绘制一个 5 米长的线    Gizmos.color = Color.red;    var direction = transform.TransformDirection(Vector3.forward) * 5;    Gizmos.DrawRay(transform.position, direction);    }  ◆  static var matrix : Matrix4x4  描述:设置用于渲染所有 gizmos 的矩阵。  类方法  ◆  Static function DrawCube(center:Vector3,size:Vector3):void  描述:用 center 和 size 绘制一个立方体.  Function OnDrawGizmosSelected(){          //在变换位置处绘制一个变透明的蓝色立方体          Gizmos.color=Color(1,0,0,5);          Gizmos.DrawCube(transform.position,Vector3(1,1,1));  }  ◆  Static  function  DrawGUITexture(screenRect:Rect,texture:Texture,mat:Material=null):void  描述:在屏幕坐标下绘制一个纹理。用于 GUI 背景。  ◆  Static  function  DrawGUITexture(screenRect:Rect,texture:Texture,leftBorder:int,rightBorder:int,topBorder:int,b ottomBorder:int,mat:Material=null):void  描述:在屏幕坐标下绘制一个纹理。用于 GUI 背景。  ◆  Static function Drawicon(center:Vector3,name:string):void  描述:在世界位置 center 处绘制一个图标.  这个图标被命名为 name 并放置在 Assets/Gizmos 文件夹或 Unity.app/Resoutces 文件 夹.DrawIcon 允许你在游戏中快速选择重要的物体。  //在物体位置处绘制光源灯泡图标.  //因为我们在 OnDrawGizmos 函数内部调用它,在场景视图中  //这个图标总是可点选的.  function OnDrawGizmos(){       Gizmos DrawIcon(transform.position,”Light Gizmo.tiff”);  }  ◆  Static function DrawLine(from:Vector3,to:Vector3):void  描述:绘制一条线从 from 到 to.      Var Larget:Transform;  function OnDrawGizmosSelected(){          if(target != null)          {                   //从 transform 到 target 绘制一条蓝色的线          Gizmos.color = Color.blue;                    Gizmos.DrawLine(transform.position,target.position);  }  }  ◆  static function DrawRay(r:Ray):void  static function DrawRay(from:Vector3,direction:Vector3):void  描述:绘制一个射线从 from 开始到 from + direction.  ◆  function OnDrawGizmosSelected(){      Gizmos.color = Color.red;      Direction = transform.TransformDirection(Vector3.forward)*5;      Gizmos.DrawRay(transform.positon,direction);   }  ◆  Static function DrawSphere(center:Vector3,radius:flont):void  描述:用 center 和 r andins 绘制一个球体.  Function OnDrawGizmosSelected(){        //在变换位置处绘制一个黄色的球体        Gizmos.color = Color.yellow;        Gizmos.DrawSphere(transtorm.position,1);  }  ◆  Static function DrawWireCube(center:Vector3, size: Vector3):void  描述:用 center 和 radius 绘制一个线框立方体.  Function OnDrawGizmosSelected(){       //在变换位置处绘制一个黄色立方体       Gizmos.color = Color.yellow;       Gizmos.DrawWireCube (transtorm.position, Vector3(1,1,1));  }  ◆  Static function DrawWireSphere(center:Vector3,radius:float):void  描述:用 center 和 radius 绘制一个线框球体.  Var explosionRadius = 5.0;  Function OnDrawGizmosSelected(){       //选中 的时候显示爆炸路劲       Gizmos.color = Color.white;       Gizmos.DrawSphere(transtorm.position,explpsionRadius);  }  Graphics      类    Unity 绘制函数的原始接口。    这个是高级快捷地进去 Unity 优化网格绘制的地方。只限于 Unity Pro.  类方法      ◆  static  function  DrawMesh(mesh:Mesh,  position:  Vector3,  rotation:  Quaternion,  material:  Material,  layer:  int,  camera:  Camera=null,  submeshIndex:  int,  properties:  MaterialPropertyBlock=null): void    ◆  static function DrawMesh(mesh:Mesh,matrix:Matrix4x4,material:Material,layer:int,  camera:Camera = null,submeshIndex:int,properties:MaterialPropertyBlock=null):  void  参数  mesh                    用于绘制的 Mesh.  position                 网格的位置。  rotation                 网格的旋转。  matrix                   网格的变换矩阵(由位置,旋转和变换 x 组合)  material                 使用的 Material.  layer                      使用的 Layer.  Camera                   如果是 null(缺省),该网格将在所有相机中被绘制,否则 它将只会在给定的相机中渲染。  submeshIndex                 那个子网格被渲染。这只是在网格使用了多个材质的 时候使用。  Properties                        在网格绘制前应用到才子的额外材质属性。参考 MaterialPropertyBlock.  描述:绘制一个网格  DrawMesh     在一帧中绘制一个网格。这个网格将受到光照的影响,可以投射接收 阴影并被投射器影响。就像它是某个物体的一部分。他可以绘制于所有相机,或者只是特 定的一些相机    在你想创建人景的网格,而又不想过多的创建和管理游戏物体的时候使用 DrawMesh. 注意,DrawMesh 不会立即绘制网格;它仅仅提交它用于渲染。网格将被作为普通渲染过程 的一部分。如果想立即绘制一个网格。使用 Graphics.DrawMeshNow。  因为 DrawMesh 不会立即绘制网格,在调用这个函数之间修改材质属性并会使材质使 用它们。如果你想绘制一系列相同材质的网格,但是稍微有些不同的属性(例如,改变每 个网格的颜色),那么使用 MaterialPropertyBlock 参数。  参见:MateralPropertyBlock.  ◆  Static  function  DrawMeshNow(mesh:Mesh,position:Vector3,rotation:Quatemion):void  描述:在给定的 position,用给定的 rotation 绘制一个 mesh。  这个函数将设置模型视矩阵并绘制网络。当前设置材质的 pass 可以被使用(参考 Setpass)  ◆  Static  function  DrawMeshNow(mesh:Mesh,position:Vector3,rotation:Quatemion,materallndex:int):void  描述:在给定的 position,用给定的 rotation 和一个 materialIndex 绘制一个 mesh.  ◆  Static function  DrawMeshNow(mesh:Mesh,matrx:Matrix4x4):void  描述:用给定的 matrix 绘制一个 mesh.  如果这个矩阵有一个负的缩放这个函数将不会正确渲染物体。  ◆  Static function DrawMeshNow(mesh:Mesh,matrx:Matrix4x4,materialIndex:int):void  描述:用给定的 matrix 和 ma terialIndex 绘制一个 mesh.      如果这个矩阵有一个负的缩放这个函数将不会正确渲染物体。  ◆  Static  function  DrawTexture(screenRect:Rect,texture:Texture,mat:Material  =  null):void  描述:在屏幕坐标下绘制一个纹理。  ◆  Static  function  DrawTexture(screenRect:Rect,texture:Texture,leftBorder:int,rughtBord:int,topBorder:int,botto mBorder:int,mat:Material=null):void  描述:在屏幕坐标下绘制一个纹理。  ◆  Static  function  DrawTexture(screenRect:Rect,texture:Texture,sourceRect:Rect,leftBorder:int,rughtBord:int,top Border:int,bottomBorder:int,mat:Material=null):void  描述:在屏幕坐标下绘制一个纹理  ◆  static  function  DrawTexture(screenReet:Rect,texture:Texture,sourceRect:Rect,leftBordr:int.rightBrder:int.topB order:int,bottomBorder:int,color:Bolor,mat:Material=null):void  描述:在屏幕坐标下绘制一个纹理。  Hashtable  类  函数  ◆  function Add(key:Object, value:Object):void  描述:添加指定的键和值到哈希表。  ◆  function Clear():void  描述:数量被设置为 0,并且从该集合中元素到其他对象的引用也将被释放,容量没有 改变。///这个方法是 O(n)操作,这里 n 是元素数量。  ◆  function Contains(key:object):bool  描述:决定该哈希表中是否包含指定的键。  ◆  function ContainsKey (key:object):bool  描述:从哈希表中移除指定键的元素。  ◆  function Remove(key:object):void  描述:从哈希表中移除指定键的元素。  HostData  类  这个是用来保存单个主机信息的数据结构。  从 master 服务器取回的主机列表,使用这个类表示单个主机。  变量  ◆  var comment:string  描述:一个多用途的注释(可以保存数据)    ◆  var conneetedfPlaycrs:int  描述:当前连接的玩家  ◆  var gameName:stting  描述:游戏的名称(像 John Doe's Game)  ◆  var gameType:string  描述:游戏类型(像 MyUniqueGameType)      ◆  var ip:string[]  描述:服务器 IP 地址  ◆  var passwordProtected:bool  描述:服务器需要密码吗?  ◆  var playerLimit:int  描述:最大玩家限制  ◆  var port:int  描述:服务器端口  ◆  var nseNat:bool  描述:这个服务器需要 NAT 穿透吗?  input  类  到输入系统的接口。  使用这个类读取在 Input Manager 中设置的轴。  使用 Input.GetAxis 用下面的缺省轴读取轴心:"Horizontal"和"Vertical"被映射到摇杆, A,W,S,D 和方向键,"Mouse X"和"Mouse Y"被映射到鼠标添量,"Fire1","Fine2","Fine3" 映射到 Ctrl,Alt,Cmd 键和鼠标的三键或腰杆按钮。新的输入轴可以在 Input Manager 中添 加。  如果你在为任何一种运动行为使用输入,那么使用 Inpur.GetAxis。它给你一种平滑的可 配置的输入,这个输入可以被映射到键盘,摇杆或鼠标。  使用 Input.GetButton 用于像事件一样的行为,不要将它用于移动,Input.GetAxis 将使 脚本代码更小更简单。  类变量  ◆  static var anyKey:bool  描述:当前按住了任何键或鼠标按钮吗?(读取)  ◆  static var anyKeyDown:bool  描述:用户按下任何键或鼠标按钮返回(Rend  Only)。直到用户释放所用键/按钮并再 次接下任何键/按钮时才返回真。  ◆  static var input: String  描述:返回这一帧中键盘的输入(只读)。  只有 ASCII 可以包含在 inputString 中。  该字符串可以包含两个能被处理的特殊字符:字符“\b”代表退格。  *符"\n"表示回车。  //显示如何从键盘读取输入  //(例如,用户输入它的名字)。  //你需要附加这个脚本到一个 GUTText 物体。function Updarc(){  for (var c;char in Input inputString){  //退格,移除最后一个字符  if(c=="\b") {  iftguiText.Lcngth.text.Substring(0,guiText.text Length‐1);   }  //结束  efse if (e=="\n"){  prinr("Uscr cntered his name:"+guiText,text);      }  //正常的文本输入.附加到尾部  elsc  }  guiText.text+=c;  }  }  }  ◆  static var mousePosition:Vcctor3  描述:当前鼠标在像素坐标下的位置。  屏幕或窗体的左下为(0,0),屏幕或窗体的左上为(Screen.width,Screen.height).  var particle:GamcObject,  function Update() {  if (lnput,GctButtonDown{"Firel")){  //从当前鼠标坐标处创建一个射线  var ray=Camera.main.ScreenPointToRay(Input mousePositicn);  if{Physics.Raycast(ray)) {  //如果碰到创建一个粒子  Instontiatc(particlc,transfonn.position,transfonn.rotation);  }  }  }  类方法  ◆  static function CetAxis(axinName:string):float  描述:设置由 axinName 确实虚拟轴的值。  对于键盘和摇杆输入,这个值将在‐1...1。  一个非常简单的行驶在 x‐z 平面的汽车。  var spced=10.0;  var cotatinnSpeed=100.0;  function update()  }  //获取水平和垂直轴,  //默认滴它们被映射到方向键  //这个值的范围在‐1 到 1  var transtation=loput.getaxis("vertical")*spccd;  var rotation=inpul getaxis ("horizontal"*rotarionspeed)  //使它以 10 米/秒速度移动而不是 10 米/帧  translation*=time delta time  //沿着物体的 Z 轴移动变换  transtorm.transtate(1010translation);  //绕着 Y 轴旋转  transform.rotate(0.rotation.0);  }  //指定一个鼠标查看      var horizontalspccd=2.0;  var verticelspeed=2.0  function update()  {  获取鼠标增量,这个没有在范围‐1...1 之间  var h=horizontalspeed*inpul.getaxis("mouse X");  var v=verticalspeed*input.getaxis("mouse Y");  transform.rotate(v.h.0);  }  ◆static function getaxisraw(axisname:string):float  描述:设置由 axisname 确定虚拟轴的值,并且没有使用平滑过滤,  对于键盘和摇杆输入,这个值将在‐1...1 的范围内。因为输入没有被平滑,  总是‐1,0 或 1.如果你想自己处理所有键盘输入的平滑,这个是很有用的。  function update(){  var speed=input.getaxisraw("horizoatal"*time deta time);  transform rotate(0.speed.0);  }  ◆static function getbutton(button name:string):bool  描述:当时由 button name  确定的虚按钮被按住时返回真。  考虑自动开火‐这个将在按钮被按住时一直返回真。  //如果每 0.5 秒实例化一个 projcctile,  //如果 firel 按钮(默认为 Ctrl)被按下  var projectile:game object;  var firerate=0.5;  private var nextfire=0.0;  function update()  {  fi(input getbutton("firel")&&time.time>nextfire){  nextfire=time.time+firerate;  clone=instantiate(peojecctile,teansform,position,transffrm,rotation);  }  }  只有使用这个实现事件行为例如,射击,使用 input.getaxis  用于任意类型的移动行为  ◆static function getbuttondown(button name:steing):bool  描述:当由:button name  确定的虚拟按钮被按下时返回真。  知道用户释放并再次按下时返回真。  //当用户按下 firel 按钮时实黎化一个 projcctile  var projectile:gameobject;  function update(){  if(input getbution down("firel")){  elone=instantiate(projectile,transforrn,position.transforn.rotinon);  }  }  只使用这个实现事件行为例如,射击,使用 lnput.GetAxis 用于任意类型的移动行为。      ◆  static function GetButton Up(buttonName:string):bool  描述:当由 buttonName 确定的虚拟按钮被释放时返回真.  直到用户按下按钮并再次松开时返回真。  //当用户按下 Fire;按钮时实例化一个 projectile.  var projectile:GameObject;  function Update O;  if(lnput GetButtonUp("Firel")){  clcne=lnstantiate{projectile,transtorm.position,transform.rotation);    }   }  只使用这个实现事件行为例如,射击。使用 lnput.GetAXis 用于任意类型的移动行为,  ◆  static funcrion GetKey(name:string):bool  描述:当用户按住由 name 确定的键时返回真,考虑自动开火。  键标识列表参考输入管理器。在处理输入时建议使用 lnput.GetAxis 和 lnput.GetButton  因为它允许端用户定义这些键.  funcrion Update(){  if(lnput.GetKey("up")){     print("up arrow key is held down");  }  if(lnput.GetKey("down"))  }     print("down arrow key is held down ");    }   }  ◆  static junction GetKey(key:keyGode):bool  描述:当用户按住由 key KeyCode 枚举参数确定的键时返回真.  funcrion Update(){  if(lnput.GetKey(KeyCode.UpArrow))}     print("up arrow key is held down");  }  if(lnput.GetKey(KeyCode.DownArrow)){     print("down arrow key is held down");     }  }  ◆  static function GetkeyDown(name:string):bool  描述:当用户开始按下由 name 确的键时返回真.  直到用户释放按钮并再次按下时返回真.  键标示列表参考 lnput Manager.在处理输入时建议使用lnput.GetAxis和Input.GetBUtton  function Update();  if(input GetkeyDown("space"))     print("space key  was pressed");    }   }  static function GetKeyDown(Key:KeyCode):bool      描述:当用户按下由 Key KeyCode 枚举参数确定的键时返回真.  function Update();    if{lnput GetKeyDown(KeyCode.Space))  print("space key was pressed");  }  }  ◆  static function GetKeyUp(name:sting):bool  描述:当用户释放由 name 确定的键时返向真.  直到用户按下按钮并再次松开时返向真。  键标示列表参考 lntpot  Manager. 在处理输入时建议使用 lnput.GetAxis 和 lnput.GetButton  因为它允许端用户定义这些键.  function Update();{  if(lnput.GetKeyUp("space");    }   }  ◆  static function GetKeyUP(Key:KeyCode):bool  描述:当用户释放由 Key KeyCde  校举参数确定的键时返回真.  function Update(){  if(lnput,GetKeyUp(KeyCode.Space));    print("space key was feleased");    }  }  ◆  statie function GetMouseButton(button:int):bool  描述:返回给定的鼠标按钮是否被按住。  /button/值为 0 表示左键,1 表示右键,2 表示中键.  ◆  statie function GetMouseButtonDown(button:int)bool  描述:用户按下给定的鼠标按钮时返回真.  直到用户释放按钮并再次按下它时才返回真.button 值为 0 表示中键左键,1 表示右键, 2 表示中键.  ◆  statie function GetMouseButtonUp(button:int)bool  描述:用户释放给定的鼠标按钮时返回真.  直到用户释放按钮并再次释放它时才返回真.button 值为 0 表示中键左键,1 表示右键, 2 表示中键.  ◆  statie function ResetlnputAxes();Void  描述:重置所有输入。在 ReaetlnputAxes 之后所有轴将返回 0 并且所有按钮返回 0.  这可用于当重生玩家,并且当你不想任何来自键盘的输入还处于按下时。  lnpu.ReaetlnputAxes();  jointDrive  结构  关节如何沿着本地 X 轴移动   变量  ◆  var maximumForce:float  描述:用于向指定的方向推动物体的力的量。仅在 Mode 包含 Velocity 时使用。      ◆  var mode:jointDriveMode  描述:驱动是否尝试到这个位置和/或速度.  ◆  var positionDamper:float  描述:位置弹簧的阻力强度,只用于 mode 包含位置的时候.  ◆  var positionSpring:float  描述:朝着定义的方向推动的一个阻力强度。只用于 mode 包含位置的时候.  Jointlimits  结构  jointlimits 被 Hingejoint 使用来限制关节角度.  参见:Hingejoint  变量  ◆  var max:float  描述:关节的上限。当关节角度或位置的上限。  关节将使用力来约束它。  //设置最小链接角度为 20 度  hingejoint.limits.max=40;  ◆  var maxBounce:float  描述:当关节碰到关节的上限时关节的弹力。  //设置关节反弹时的上限  hingejoint.limits.maxBounce=1;  ◆  var min:float  描述:关节的下限。当关节角度或位置的下限。  关节将使用力来约束它。  //设置最小链接角度为 20 度  hingejoint.limits.min=20;  ◆  var minBounce:float  描述:当关节碰到关节的下限时关节的弹力。    //关节反弹时的下限  hingejoint.limits.minBounce=1;  jointMotor  结构  jointMotor 用来旋转一个关节  例如:Hingejoint 可以被告知以制定的速度和力旋转。关节然后用给定的最大力试图到 达这个速度,参见:  变量  ◆  var force:float  描述:动力将应用最大为 force 的力以便取得 targetvelocity  ◆  var freeSpin:bool  描述:如果 freeSpin 被启用动力将只加速而不会减速  ◆  var targetvelocity:float  描述:动力将应用最大为 force 的力以便取得 targetvelocity  Jointspring  结构  变量      ◆  var damper:float  描述:用语阻尼弹簧的阻尼力。  ◆  var spring:float  描述:用于达到目标位置的弹力  ◆  var targetposition:float  描述:关节试图到达的目的位置  这里一个 hingehoint 目标位置是目标角度  Keyframe  结构  一个关键帧它可以插入动画的曲线  变量  ◆  var in tangent:float  描述:在曲线上从下一个点到这个点时描述切线。  参加:outtangent  ◆  var outtangent:float  描述:在曲线上从这个点到下一个点时描述切线。  参见:intangent  ◆  var time:float  描述:关键帧时间  在一个 2D 图形中,你可以把这当做 x 值  参见:value  ◆  var value:float  描述:该动画曲线在关键帧处的值  参见:time  构造函数  ◆  stat ic function keyframe(time:float,value:float):keyfranie  描述:创建一个关键帧  ◆  static  function  keyframe ( time : float , value : float,intangent:float,outangent:float):keyframe  描述:创建一个关键帧  layermask  结构  layermask 允许你在检视面板中显示 layermask 弹出菜单  类似与 camera,cullingmask。layermasks  可以选择性地过滤物体,例如当投射射线,  //使用层蒙板投射一个射线  //它可以在检视面板中修改  var mask larermask=  function Update(){  if(Physics.Raycast(transform.position, transform.forward, 100, mask.value))  {  Debug.Log(“Hit something”;  }  }  变量      ◆  var valuc:vin  描述:转化层蒙板的值为一个整形值  //使用层蒙板投射一个射线  //它可以在检视面板中修改  var mask:lnyermask=‐1  fonction update(){  if{physics.rayeast(transforn.position.transform.forwatd.100.mask.value))  {  Debug   }  }  类方法  ◆  static function LayerToName(layer  :in):string  描述:给定一个层的数字。返回内置的或在 tag Maneger 中定义的层名称。  ◆  static function NameToLayer(layerName  :string):int  描述:给定一个层的名字。返回内置的或在 tag Maneger 中定义的层索引。  ◆  static implicit function LayerMask(intva1:int):layermask  描述:隐式转化一个整数位已个层蒙板  Lightmapdata  类  光照贴图数据  一个场景可以有多个光照贴图储存在这里,renderer 组建可以使用这些光照贴图,这就 使得它能够在多个物体上使用相同的材质,而每个物体可以使用不同的光照贴图或同一个 光照贴图的不同部分。  参见,linghrmapsettings 类  renderer lightmapindex  属性  变量  ◆  var lightmap:texture2D  描述:光照贴图的纹理  参见:lightmspsettings  类  renderer lighunaplndex 属性  linghtmapsettings  类  储存这个场景的光照图  一个场景可以有多个光照贴图储存在这里,renderer 组件可以使用这些光照贴图,这就 使得它能够在多个物体上使用相同的材质,而每个物体可以使用不同的光照贴图或同一个 光照贴图的不同部分。  参见:lightmapdata 类 renderer.lightmaplndex 属性  类变量  ◆  sartic var lightmaps:lightmapdata[]  描述:光照贴图数组  参见:lightmapdata 类 renderer.lightmaplndex 属性。  Masterserver  类,主服务器用来使服务器和客服端匹配。  你可以建立以个游戏主机或为你的游戏类型取回主机列表。这里的这个函数用来与主 服务器通信,主服务器位于不同的服务器上,如果必要这个服务器可以被定制,主服务器     的概览和技术描述:参见 master server manual page  类变量  ◆  static var dedicatedserver:bool  描述:申明这台机器为专用服务器。  如果作为一个服务器运行,连接数定义了玩家的数量,当在主服务器上注册的时候这 个被报告,默认情况下主服务器假定这个实例不是专用服务器,因此玩家数会增加 1(占用 服务器上的一个\“chent”\)如果不希望,这个变量可以设置为假,然后知有连接数被报 告为玩家数。  function startserver{}{  nerwork lnitializeserver(32.25002):  masrerserver.dedicatedserver=true;  masterserver.registerhost("myuniquegametype","johndoes game","133tgame for all");  }  ◆static var ip address:string  描述:主服务器的 IP 地址。  默认地这个是由 unity 技术运行的服务器。  function   masterserver ip address="127.0.0.1";  master server.port=10002;  }  ◆static var port:int  描述:主服务器的链接端口。  默认地这个是由 unity 技术云顶的服务器,  masterserver.ipaddress="127.0.0.1";  master server.port=100021;  }  ◆static var updaterate:int  描述:为主服务器主机信息更新设置最小更新速率。  通常,主机更新只在主机信息被改变的时候发生(如连接的玩家)。更新率定义了主机 更新之间的最小时间量,缺省值为 60 秒(检查更新)因此,如果以个主机更新呗发送然后 一些域在 10 秒后改变,然后更新可能会在 50 秒之后发送(在下一次检查到改变的时候)。 如果这个被设置为 0,以后就没有更新被发送,只发送初始注册信息。  function startserver()  {  network lnitialigeserver(32.25002);  //在初始化注册之后没有主机信息更新  Masterserver.updaterate=0;  masterserver,registerhost("myuniquegametype","johndoes game","133tgame forall");  }  类方法  ◆static function clearhostlist():void  描述:清楚由 masterserver.pollhostlist 接收到的主机列表。  如果你想更新列表并想确保你不使用较旧的数据时,使用这个,  function awakc()      {  //确保类表是空的并请求一个新的列表  masterserver clearhostlist();  masterserver.requesthostlist("myuniquegametype");  }  function lpdate()  {  //如果任何主机被接收,显示游戏名称,再次清理主机列表,}  if(masterserver.pollhostlist(),length!=0){  var hostdata;hostdata[]=masterserver.pollhostlist();  for(var i:int=0;i 0) {  Debug.Log("Disconnecting:  "+Network.connections[0].ipAddress+":"+Network.connections[0].port);  Network.CloseConnection(Network.connections[0], true);  }   }   }  ◆  static var ConnectionTesterIP:string  描述:用在 Network.TestConnection 中的连接测试的 IP 地址。  function ResetIP() {  Network.connectionTesterIP = "127.0.0.1";  Network.connectionTesterPort = 10000;  }  ◆  static var connectionTesterPort:int  描述:用在 Network.TestConnection 中的连接测试的 IP 端口。  function ResetIP() {  Network.connectionTesterIP = "127.0.0.1";  Network.connectionTesterPort = 10000;  }  ◆  static var incomingPassword:string  描述:为这个服务器设置密码(对于进入的连接)。这个必须与客户端上 Network.Connect 中的相同,传递””表示没有密码(默认)。  function ConnectToServer () {  Network.Connect("127.0.0.1", 25000, "HolyMoly");  }  function LaunchServer () {  Network.incomingPassword = "HolyMoly";  Network.InitializeServer(32, 25000);  }  ◆  static var isClinet:bool  描述:如果你的端类型是客户端则返回真。  function OnGUI() {  if (Network.isServer)  GUILayout.Label("Running as a server");  else if (Network.isClient)  GUILayout.Label("Running as a client");  }  ◆  static var isMessageQueueRunning:bool      描述:启用或禁用网络消息处理。如果这个被禁用,没有 RPC 调用或网络视同步会替 代。Network level loading 有如何使用这个函数的例子。  ◆  static var isServer:bool  描述如果你的端类型是服务器端则返回真。  function OnGUI() {  if (Network.isServer)  GUILayout.Label("Running as a server");  else if (Network.isClient)  GUILayout.Label("Running as a client");  }  ◆  static var maxConnections:int  描述:设置允许的连接/玩家的最大数量。设置 0,以为这没有心的连接可以被建立。 但现有保持连接。设置为‐1 表示最大连接数被设置为与当前开发的连接数相同。在这种情 况下,如果一个玩家掉线,那么这个空位还是为他开放的。这个不能设置为高于 Network.InitializeServer 设置的连接数。  function StartGameNow() {  //  不允许更多玩家  Network.maxConnections = ‐1;  }  ◆  static var minimumAllocatableViewIDs:int  描述:在 ViewIDc 池中获取或设置服务器分配给客户端 ViewID 的最小数。当玩家使用 新的数字连接并被刷新时,ViewID 池被分配给每个玩家。服务器和客户端应该同步这个值。 在服务器上设置的更高,将会发送比它们真正需要的更多视 ID 数到客户端。在客户端上设 置更高,意味着它们需要更多视 ID。例如当池需要的 ID 数,服务器中并不包含足够的数量, 则会在一行中使用两次。默认值为 100。如果一个游戏通过网络实例化大量新的物体,例如 每秒超过 100 个的网络实例,那么这个值需要被设置的更高。  function Awake () {  //  使用更大的视 ID 池来分配  Network.minimumAllocatableViewIDs = 500;  }  ◆  static var natFacilitatorIP:string   描述:NAT 穿透辅助的 IP 地址。通常这与服务器相同。  function ResetIP() {  Network.natFacilitatorIP = "127.0.0.1";  Network.natFacilitatorPort = 10001;  }  static var natFacilitatorPort:int   描述:NAT 穿透辅助的端口。  function ResetIP() {  Network.natFacilitatorIP = "127.0.0.1";  Network.natFacilitatorPort = 10001;  }  ◆  static var peerType:NetworkPeerType  描述:端类型状态。例如,断开连接,连接,服务器或客户端。      function OnGUI() {  if (Network.peerType == NetworkPeerType.Disconnected)  GUILayout.Label("Not Connected");  else if (Network.peerType == NetworkPeerType.Connecting)  GUILayout.Label("Connecting");  else  GUILayout.Label("Network started");  }  ◆  static var player:NetworkPlayer   描述:获取本地 NetworkPlayer 实例。  ◆  static var ProxyIP:string  描述:代理服务器的 IP 地址。     function Awake(){  Network.proxyIP = "1.1.1.1";  Network.proxyPort = 1111;  }  ◆  static var proxyPassword:string  描述:设置代理服务器密码。可以制作你自己的代理服务器。在这种情况下,你也许 想用密码保护它。然后 Unity 玩家必须正确的设置这个值。  function Awake(){  //设置自定义代理服务器地址和密码  Network.proxyIP = "1.1.1.1";  Network.proxyPort = 1111;  Network.proxyPassword = "secret";  }  ◆  static var proxyPort:int   描述:代理服务器的端口。  function Awake(){  Network.proxyIP = "1.1.1.1";  Network.proxyPort = 1111;  }  ◆  static var sendRate:float  描述:用于所有网络视的默认网络更新发送速率。  function Awake () {  //增加默认的发送速率  Network.sendRate = 25;  }  ◆  static var sendRate:float  描述:获取当前网络时间(秒)。这个可以用来比较 NetworkMessageInfo 中返回的时间。 这个实例脚本需要附加到一个带有网络视的物体上,并使网络视监视这个脚本。它管理时 间,发送这个物体的同步 X 位置消息。  var something : floa t;  var transitTime: double;  function OnSerializeNetworkView (stream : BitStream, info : NetworkMessageInfo) {  var horizontalInput : float = 0.0;      if (stream.isWriting) {//发送  horizontalInput = transform.position.x;  stream.Serialize (horizontalInput);  }    else {//接收  transitTime = Network.time ‐ info.timestamp;  stream.Serialize (horizontalInput);  something = horizontalInput;  }  }  function OnGUI() {  GUILayout.Label("Last transmission time: "+ transitTime);  }  ◆  static var useNat:bool     描述:当连接(客户端)或接收连接(服务器)时,我们应该使用 NAT 穿透吗?如果 这个在在服务器上设置,只有具有 NAT 穿透的客户端才能连接到它。但是如果服务器有一 个 NAT 地址,这个需要打开以便连接。有些路由器不知道如何做 NAT 穿透。因此对于这些 玩家唯一的方法就是修改路由器以便打开合适的转发端口(游戏端口)。参考 Network.TestConnection 和 Network.TestConnectionNAT 获取如何自动检测端用户的方法。  function OnGUI() {  if (GUILayout.Button ("St art Server"))  {  //如果没有共有 IP 地址,使用 NAT 穿透  Network.useNat = !Network.HavePublicAddress();  Network.InitializeServer(32, 25002);  MasterServer.RegisterHost("MyUniqueGameType",  "JohnDoes  game",  "l33t  game  for  all");  }  }  ◆  static var useProxy:bool  描述:标示是否需要代理服务器支持,在这种情况下流量通过代理服务器被延迟。代 理伺服器是一种与服务器和客户端连接性问题的解决方案。当机器有一个非 NAT 穿透能力 的路由器,其连接的选择非常优先。一个游戏不能没有外部连接(只有客户端在本地网络 中)。通过使用代理服务器,该机器可以具有完全的连接性,但是额外的代价是所有的流量 都会被延迟。一个没有 NAT 穿透能力的客户端通过代理能够连接到任何服务器,只要代理 服务器正确的设置。官方并不提供代理服务器为公众使用。所以你需要自己建立代理服务 器。当然,用共有 IP 地址设置代理服务器并保证有大量可用带宽是明智的。当作为客户端 运行时,只要启用 Network .useProxy 就可以。想往常昂使用 Network . Connect 连接到服务 器。所有通过代理服务器的流量将被延迟。服务器的外部 IP 和内部 IP 还像往常一样工作。 这样如果它们位于同一网络中,客户端可以直接连接到它而不需要代理。作为一个服务器 运行时,OnServerInitialized(NetworkPlayer)返回一个 NetworkPlayer 结果表明游戏服务器中 转的 IP 端口,代理服务器分配给游戏服务器的端口是什么。这个是其他客户端可以连接到 的 IP 端口。当连接到服务器时,客户端不会将这个服务器与其他服务器区别对待。严格的     说,它们不需要知道这个服务器得到代理服务器的帮助。当使用主服务器时,你不能只依 赖于它在使用代理服务器时为服务器注册的 IP 端口。服务器使用的代理服务器的 IP 地址和 端口,可以防止在数据域的注释中来发送给主服务器。从主服务器接收主机信息的客户端 可以去除注释域并查看它是否能够为那个主机使用另一个可选的 IP 端口。  重要:你不应该同时为连接到它的服务器和客户端启用代理支持,会发生意想不到的 事情。  var imaserver: boolean;  var serverIP: String;  var serverPort: int;  var serverUsesNAT: boolean;  function Awake(){  //设置自定义代理服务器地址  Network.proxyIP = "1.1.1.1";  Network.proxyPort = 1111;  if (imaserver)  StartServerWithProxy();  else  ConnectToServerWithProxy();  }  function StartServerWithProxy(){  Network.useProxy = true;  Network.InitializeServer(2,25000);  }  function OnServerInitialized(player: NetworkPlayer){  if (Network.useProxy)  Debug.Log ("Successfully started server with pr oxy support. We are connectable through  "+ player.ipAddress + ":" + player.port);  }  function OnFailedToConnect(msg: NetworkConnectionError){  if (Network.useProxy && imaserver){  Debug.LogError("Failed to connect to proxy server: " + msg);  }  }  function ConnectToServerWithProxy(){  Network.useProxy = true;  Network.useNat = serverUsesNAT;  Network.Connect(serverIP, serverPort);  }  function OnConnectedToServer(){  Debug.Log("Connected successfully to server");  }  类方法  ◆  stat ic function AllocateViewID():NetworkViewID  描述:查询下一个可用的网络视 ID 数并分配它(保留)。这个数字又可以被赋予一个实     例化物体的网络视。注意,为了使其可正常工作,必须有一个 NetworkView 附加到这个物 体,这个物体必须有这个脚本并必须使这个脚本作为它的观察属性。必须有一个 Cube 预设, 带有一个 NetworkView 它监视某些东西(例如该 Cube 的 Transform)。脚本中的 cubePrefab 变量必须设置为立方体预设。使用智能的 AllocateViewID 是最简单的方法。如果有超过一个 NetworkView 附加在初始化的 Cube 上着将变得更复杂。  var cubePrefab : Transform;  function OnGUI (){  if (GUILayout.Button("SpawnBox")){  var viewID = Network.AllocateViewID();  networkView.RPC("SpawnBox", RPCMode.AllBuffered, viewID, transform.position);   }  }  @RPC  function SpawnBox (viewID : NetworkViewID, location : Vector3) {  //实例化本地的 prefab  var clone : Transform;  clone = Instantiate(cubePrefab, location, Quaternion.identity);  var nView : NetworkView;  nView = clone.GetComponent(NetworkView);  nView.viewID = viewID;  }   ◆  static  function  CloseConnection  (target  :  NetworkPlayer,  sendDisconnectionNotification : bool) : void    描述:关闭与其他系统的连接。/target/定义连接到的那个系统将被关闭,如果我们是 客户端,连接到服务器的连接将会关闭。如果我们是服务器目标玩家,将会被踢出。 sednDisconnectionNotification 启用或禁用通知将被发送到另一端。如果禁用连接被丢弃, 如果没有断开连接通知被发送到远端,那么之后的连接将被丢弃。  function OnGUI() {  if (GUILayout.Button ("Disconnect from server")) {  if (Network.connections.length == 1) {  Debug.Log("Disconnecting:  "+Network.connections[0].ipAddress+":"+Network.connections[0].port);  Network.CloseConnection(Network.connections[0], true);  }   else if (Network.connections.length == 0)  Debug.Log("No one is connected");  else if (Network.connections.length > 1)  Debug.Log("Too many connections. Are we running a server?");  }  if (GUILayout.Button ("Disconnect first player")) {  if (Network.connections.length > 0) {  Debug.Log("Disconnecting:  "+Network.connections[0].ipAddress+":"+Network.connections[0].port);  Network.CloseConnection(Network.connections[0], true);      }   }   }  ◆  static  function  Connect  (IP:string,  remotePort:int,  password:string  =  ""):NetworkConnectionError  描述:连接到特定的主机(IP 或域名)和服务器端口。参数是主机的 IP 地址,点 IP 地 址或一个域名。remotePort,指定连接到远端机器的端口。password,它是一个可选的用于 服务器的密码。这个密码必须设置为与服务器的 Network.incomingPassword 相同。  function ConnectToServer () {  Network.Connect("127.0.0.1", 25000);  }  ◆  static  function  Connect(IPs:string[],  remotePort:int,  password:string  =  ""):NetworkConnectionError  描述:该函数与 Network.Connect 类似,但是可以接受一个 IP 地址数组。当从一个主 服务器的主机信息返回多个内部 IP 地址时,IP 数据结构可以被直接传入这个函数。它将实 际的连接到相应 ping 的第一个 IP(可连接)。  ◆  static function Destroy (viewID : NetworkViewID) : vo id  描述:跨网络销毁与该视 ID 相关的物体。本地的于远端的都会被销毁。  var timer : float;  function Awake () {  timer = Time.time;  }  //通过网络销毁拥有该脚本的物体  //其必须具备 NetworkView 属性  function Update() {  if (Time.time ‐ timer >   2)  {  Network.Destroy(GetComponent(NetworkView).viewID);  }  }   function Update() {  if (Time.time ‐ timer > 2){  Network.Destroy(GetComponent(NetworkView).viewID);  }  }  ◆  static function Destroy (gameObject : GameObject) : vo id  描述:跨网络销毁该物体。本地的与远端的都会被销毁。  var timer : float;  function Awake () {  timer = Time.time;  }//通过网络销毁拥有该脚本的物体  function Update() {  if (Time.time ‐ timer > 2){      Network.Destroy(gameObject);  }  }  ◆  static function DestroyPlayerObjects (playerID : NetworkPlayer) : void  描述:基于视 ID 销毁所有属于这个玩家的所有物体。这个只能在服务器上调用。例如, 清理一个已断开的玩家留下的网络物体。  function OnPlayerDisconnected(player: NetworkPlayer) {  Debug.Log("Clean up after player " + player);  Network.RemoveRPCs(player);  Network.DestroyPlayerObjects(player);  }  ◆  static function Disconnect (timeout : int = 200) : void  描述:关闭所有开放的连接并关闭网络接口。timeout 参数表示网络接口在未收到信号 的情况下,多长时间会关闭。网络状态,入安全和密码,也会被重置。  function OnGUI() {  if (GUILayout.Button ("Disconnect")) {  Network.Disconnect();  MasterServer.UnregisterHost();  }  }  ◆  static function GetAveragePing (player : NetworkPlayer) : int  描述:到给定 player 的最后平均 ping 时间,以毫秒计。如果没有发现玩家,返回‐1。 Ping 会每隔几秒自动发出。  function OnGUI() {  var i: int;  GUILayout.Label("Player ping values");  for (i=0; i < Network.connections.length; i++) {  GUILayout.Label("Player  "  +  Network.connections[i]  +  " ‐ "  +  Network.GetAveragePing(Network.connections[i]) + " ms");  }  }、    ◆  static function Ge tLastPing (player : NetworkPlayer) : int  描述:到给定 player 的最后平均 ping 时间,以毫秒计。   如果没有发现玩家,返回‐1。Ping 会每隔几秒自动发出。  function OnGUI() {  var i: int;  GUILayout.Label("Player ping values");  for (i=0; i < Network.connections.length; i++) {  GUILayout.Label("Player  "  +  Network.connections[i]  +  " ‐ "  +  Network.GetLastPing(Network.connections[i]) + " ms");  }  }  ◆  static function HavePublicAddress () : bool      描述:检查该机器是否有一个公共 IP 地址。检查所有接口来获取 Ipv4 公共地址。如发 现返回真。  function OnGUI() {  if (GUILayout.Button ("Start Server")){  //  如果没有公共 IP 地址,使用 NAT 穿透  Network.useNat = !Network.HavePublicAddress();  Network.InitializeServer(32, 25002);  MasterServer.RegisterHost("MyUniqueGameType",  "JohnDoes  game",  "l33t  game  for  all");  }  }  ◆  static function InitializeSecurity () : void  描述:初始化安全层。你需要再 Network.InitializeServer 调用之后在服务器上调用这个 函数。不要再客户端调用该函数你的在线游戏达到一定知名度时就有人试图作弊。你讲需 要再游戏层和网络层处理这个。如果你希望使用它们,Unity 可以通过提供安全连接处理网 络层。  使用 AES 加密,阻止未授权读取并阻止重复攻击,添加 CRC 来检测数据篡改,使用随 机的、加密的 SYNCookies 来组织未授权登录,使用 RSA 加密保护这个 AES 密钥  大多数游戏将使用安全连接。然后,它们会向每个数据包添加 15 自己并需要时间计算, 所以你也许想限制使用此功能。  function Start (){  Network.InitializeSecurity();  Network.InitializeServer(32, 25000);  }  ◆  static  function  InitializeServer  (connections:int,listenPort:int)  :  NetworkConnectionError  描述:初始化安全层。connections 是允许进入的连接或玩家的数量。listenPort 是我们 要监听的端口。  function LaunchServer () {  Network.incomingPassword = "HolyMoly";  Network.InitializeServer(32, 25000);  }  ◆  static  function  Instantiate  (prefab:Object,  position:Vector3,  rotation:Quaternion,  group:int):Object  描述:网络实例化预设。给定的预设将在所有的客户端上初始化。同步被自动设置所 以没有额外的工作需要做。位置、旋转和网络组数值作为给定的参数。这是一个 RPC 调用, 因此     当 Network.RemoveRPCs 为这个组调用的使用,这个物体将被移除。注意在编辑器中必 须设置 playerPrefab,你能在 Object.Instantiate 物体参考中获取更多实例化信息。  //当成功连接到服务器上时  //立即实例化新连接的玩家角色  var playerPrefab : Transform;  function OnConnectedToServer (){      Network.Instantiate(playerPrefab, transform.position, transform.rotation, 0);  }  ◆  static function RemoveRPCs (playerID : NetworkPlayer) : void  描述:移除所有属于这个玩家 ID 的 RPC 函数。  function OnPlayerDisconnected(player: NetworkPlayer) {  Debug.Log("Clean up after player " + player);  Network.RemoveRPCs(player);  Network.DestroyPlayerObjects(player);  }  ◆  static function RemoveRPCs (playerID : NetworkPlayer, group : int) : void  描述:移除所有属于这个玩家 ID 并给予给定组的所有 RPC 函数。  ◆  static function RemoveRPCs (viewID : Ne tworkViewID) : void  描述:移除所有与这个视 ID 数相关的 RPC 函数调用。  ◆  static function RemoveRPCsInGroup (group : int) : void  描述:移除所有属于给定组数值的 RPC 函数。  ◆  static function SetLevelPrefix (prefix : int) : void  描述:设置关卡前缀,然后所有网络视 ID 都会使用该前缀。此处提供了一些保护,可 以防止来自前一个关卡的旧的网络更新影响新的关卡。此处可以设置为任何数字并随着新 关卡的加载而增加。这不会带来额外的网络负担,只会稍微减小网络视 ID 池。Network level  loading 有如何使用该函数的例子。  ◆  static  function  SetReceivingEnabled  (player  :  NetworkPlayer,  group  :  int,  enabled  :  bool) : void  描述:启用或禁用特定组中来自特定玩家的信息接收。在你不希望任何网络消息进入 的时候可以使用这个函数,然后在你准备好的时候启用。例如,可用于停止网络消息,知 道关卡被加载。  //停止接收来自所有玩家(客户端)的组 0 的信息  for (var player : NetworkPlayer in Network.connections)  Network.SetReceivingEnabled(player, 0, false);  ◆  static function SetSendingEnabled (group : int, enabled : bool) : void  描述:启用或禁用特定网络组上的信息传输和 RPC 调用。当你知道你不发送任何有用 的信息到其他客户端时,可以设置这个。例如在你完全你家在关卡之前。Network  level  loading 中有例子。  static function SetSendingEnabled (player : NetworkPlayer, group : int, enabled : bool) :  void   描述:基于目标玩家和网络组启用或禁用消息传说和 RPC 调用。当在客户端使用时, 唯一可能的 NetworkPlayer 就是服务器。  ◆  static function T estConnection (forceTest : bool = false) : ConnectionTesterStatus  描述:测试这个机器的网络连接。执行两种测试,这取决机器有公用 IP 还是只有一个 私有 IP。公用 IP 测试主要用于服务器,不需要测试具有公用地址的客户端。为了公用 IP 测 试成功,必须开启一个服务器实例。一个测试服务器将尝试连接到本地服务器的 IP 地址和 端口,因此它被显示在服务器中位可连接状态。如果不是,那么防火墙是最有可能阻断服 务端口的。服务器实例需要运行以便测试服务器能连接到它。另一个试验检测 NAT 穿透能 力。服务器和客户端都可以进行,无需任何事先设定。如果用于服务器 NAT 测试失败,那 么不设置端口转发是一个坏主意。本地 LAN 网络之外的客户端将不能连接。如果测试失败,     客户端就不能使用 NAT 连接到服务器,这些服务器将不会提供给用户作为主机。这个函数 是异步的,并可能不会返回有效结果。因为这个测试需要一些时间来完成(1‐2 秒)。测试 完成后,测试的结果只在函数被再次调用时返回。这样,频繁访问该函数是安全的。如果 需要其他的测试,入网络连接已改变,那么 forcTest 参数应该为真。该函数返回一个 ConnectionTesterStatus 枚举。  //是否应该在主机列表上隐藏 NAT 主机?  private var filterNATHosts = false;  private var doneProbingPublicIP = false;  function OnGUI (){  //开始/轮询连接测试  //在标签上显示结果并按照结果做出相应的反应  natCapable = Network.TestConnection();  if (natCapable == ‐2)  GUILayout.Label("Problem determining NAT capabilities");  else if (natCapable == ‐1)  GUILayout.Label("Undetermined NAT capabilities");  else if (natCapable == 0){  GUILayout.Label("Cannot do NAT punchthrough, " +"filtering NAT enabled hosts for client  connections, " +"impossible to run a server.");  filterNATHosts = true;  Network.useNat = false;  }  else if (natCapable == 1){  if (doneProbingPublicIP)  GUILayout.Label("Non‐connectable public IP address (port "+ serverPort +" blocked), NAT  unchthrough can circumvent the firewall.");  else  GUILayout.Label("NAT  punchthrough  capable.  "  +"Enabling  NAT  punchthrough  functionality.");  //一旦服务器开始 NAT 功能被启用  //客户端是否开启这个基于主机是否需要  Network.useNat = true;  }  else if (natCapable == 2){  GUILayout.Label("Directly connectable public IP address.");  Network.useNat = false;  }  else if (natCapable == 3){  GUILayout.Label("Non‐connectble  public  IP  address  (port  "  +  serverPort  +"  blocked),  running a    server is impossible.");  Network.useNat = fa lse;  if (!doneProbingPublicIP){  natCapable = Network.TestConnectionNAT();      doneProbingPublicIP = true;  }  }  else if (natCapable == 4){  GUILayout.Label("Public  IP  address  but  server  not  initialized,  "+"it  must  be  started  to  check server accessibility.");  Network.useNat = false;  }  if (GUILayout.Button ("Retest connection")){  Debug.Log("Redoing connection test");  doneProbingPublicIP = false;  natCapable = Network.TestConnection(true);  }  }  ◆  static function TestConnectionNAT () : ConnectionTesterStatus  描述:测试 NAT 穿透的连接性。这个就像 Network.TestConnection,只不过 NAT 穿透是 强制的,即使该机器有一个公用地址。请参考 Network.TestConnection。  Object  类  Unity 所涉及的所有物体的基类。任何从 Object 继承的公有变量将作为一个目标显示在 监视面板中,允许你从 GUI 中设置。  变量  ◆  var hideFlags : HideFlags  描述:该物体是否被隐藏,保存在场景中或被用户修 改。  ◆  var name : string  描述:对象的名称。组件与游戏物体和所有附加的组件共享相同名称。  //改变物体的名称为 Hello  name = "Hello";  函数  ◆  function GetInstanceID () : int  描述:返回该物体的实例 id。一个物体的实例 ID 总是唯一。  描述:返回该物体的实例 id。  一个物体的实例 id 总是唯一的。  print(GetInstanceID());  类方法  ◆  static function Destroy (obj : Object, t : float = 0.0F) : void  描述:移除一个游戏物体,组件或资源。物体 obj 将被小火或者 t 秒后被销毁。如果 obj 是一个 Component 它将被从 GameObject 中移除。如果 obj 是一个 GameObject 它将销 毁这个 GameObject,以及它的组件和所子对象。实际的销毁总是推迟到下个 Update 来临 时,但总在渲染前完成。  //销毁这个游戏物体  Destroy (gameObject);  //从物体上移除该脚本  Destroy (this);      //从游戏物体上移除刚体组件  Destroy (rigidbody);  //加载该游戏物体后 5 秒删除  Destroy (gameObject, 5);  //当玩家按下 Ctrl 时移除名为 FoooScript 的脚本  function Update () {  if (Input.GetButton ("Fire1") && GetComponent (FooScript))  Destroy (GetComponent (FooScript));  }  ◆  static function DestroyImmediate (obj : Object, allowDestroyingAssets : bool = false) :  void    描述:立即销毁物体。强烈建议使用 Destroy 代替它。该函数应该只在编写编辑器代码 时使用,因为延迟的销毁将不会再编辑器模式调用。游戏代码中建议使用 Destroy。Destroy 总是延迟的(但是在同一帧执行)。小心使用该函数,因为它能永久的销毁资源。  ◆  static function DontDestroyOnLoad (target : Object) : void  描述:加载新场景时确保物体 target 不被自动销毁。当加载一个新的关卡时,场景中 的所有物体都会被销毁,然后心关卡中的物体将被加载。为了在关卡加载的时候保持物体 在上面调用 DontDestroyOnLoad。如果物体是一个组件或游戏物体,那么它的整个变换层次 将不会被销毁。  //保证该游戏物体及其变化子物体在载入新场景时不会被销毁。  function Awake () {  DontDestroyOnLoad (this);  }  ◆  static function FindObjectOfType (type : Type) : Object  描述:返回第一个类型为 Type 的已激活加载的物体。参见 Object.FindObjectsOfType  。  ◆  static function FindObjectsOfType (type : Type) : Object[]  描述:返回所有类型为 Type 的已激活加载的物体。   参见 Object.FindObjectsOfType  。  它将返回任何资源(网格、纹理、预设等)或已激活加载的物体。  //当点击该物体,它将禁用场景中所有铰链中的弹簧。  function OnMouseDown () {  hinges = Fi ndObjectsOfType (HingeJoint);  for (var hinge : HingeJoint in hinges) {  hinge.useSpring = false;  }  }   c#版  public class Something : MonoBehaviour{  void OnMouseDown(){  HingeJoint[] hinges = FindObjectsOfType();  for (HingeJoint hinge in hinges) {  hinge.useSpring = false;  }      }  }  ◆  static function Instantiate (original : Object, position : Vector3, rotation : Quaternion) :  Object  描述:克隆 original 物体并返回该克隆。防御 position 兵设置旋转为 rotation,然后返 回该克隆。本职上与 cmd‐d 相同,并移动到给定位置。如果一个游戏物体、组件或脚本实 例被传入,Instantiate 将克隆整个游戏物体层次,所有的子对象也被克隆。所有游戏物体被 激活。参加:预设实例化的深入讨论。  //实例化预设的 10 个拷贝,间隔为 2 单位。  var prefab : Transform;  for (var i=0;i<10;i++) {  Instantiate (prefab, Vector3(i * 2.0, 0, 0), Quaternion.identity);  }  Instantiate 更多常用于实例化投射物、AI 敌人,粒子爆炸或 b 破损的物体。  //实例化一个刚体,然后设置速度。  var projectile : Rigidbody;  function Update () {  //按下 ctrl 时,发射一个物体  if (Input.GetButtonDown("Fire1")) {  //以该变化位置与旋转实例化投射物  var clone : Rigidbody;  clone = Instantiate(projectile, transform.position, transform.rotation);  //沿当前物体 Z 轴,给克隆体一个初始速度  clone.velocity = transform.TransformDirection (Vector3.forward * 10);  }  }  实例化也能直接克隆脚本实例。整个游戏物体层级将被克隆,并且克隆脚本的实例将 被返回。  //初始化一个附加了 Missile 脚本的预设  var projectile : Missile;  function Update () {  //按下 ctrl 时,发射一个物体  if (Input.GetButtonDown("Fire1")) {  //以该变化位置与传转实例化投射物  var clone : Missile;  clone = Instantiate(projectile, transform.position, transform.rotation);  //设置火箭超市销毁为 5 秒  clone.timeoutDestructor = 5;  }  }  克隆一个物体之后可以使用 GetComponet 来设置附加到克隆物体上的特定组件的属 性。  ◆  static function Instantiate (original : Object) : Object   描述:克隆 original 物体并返回该克隆。这个函数保留克隆物体的位置与赋值命令相同     (cmd‐d)。  //当任何刚体进入这个触发器时实例化预设。  //它保留预设的原始位置与旋转。  var prefab : Transform;  function OnTriggerEnter () {  Instantiate (prefab);  }  ◆  static operator != (x : Object, y : Object) : bool   描述:比较两个物体是否不同。  var target : Transform;  function Update (){  //如果 target 不同于我们的变换。  if (target != transform){  print("Another object");   }  }  ◆  static operator == (x : Object, y : Object) : bool   描述:比较两个物体是否相同。  var target : Collider;  function OnTriggerEnter (trigger : Collider){  if (trigger == target)  print("We hit the target trigger");  }  var target : Transform;  function Update (){  //该物体已被销毁。  if (target == null)  return;  }  ◆  static implicit function bool (exists : Object) : bool   描述:这个物体是否存在?  if(rigidbody)   等同于  if(rigidbody != null)  AnimationClip  类,继承自 Object。  存贮基于动画的关键帧。  AnimationClip 被 Animation 使用来播放动画。   变量  ◆  var frameRate : float  描述:关键帧被残阳的帧率。这个与用来制作动画/模型的动画程序相同。  //打印动画剪辑的帧率到控制台。  print(animation["walk"].clip.frameRate);  ◆  var length : float       描述:动画播放的描述。  animation.Play(animation.clip);  //等待动画完成。  yield WaitForSeconds (animation.clip.length);  ◆  var wrapMode : WrapMode   描述:在动画状态中设定默认的卷模式。  构造函数  ◆  static function AnimationClip () : AnimationClip   描述:创建一个新的动画剪辑。  函数  ◆  function AddEvent (evt : AnimationEvent) : void  描述:创建一个新的动画剪辑。这将添加这个时间直到退出播放模式或玩家退出。如 果你想从编辑器添加一个固定的剪辑到 AnimationEvent ,使用 UnityEditorAnimationUtility.SetAnimationEvents。  ◆  function ClearCurves () : void   描述:从剪辑中清理所有曲线。  ◆  function SetCurve (relativePath : string, type : Type, propertyName : st ring, curve :  AnimationCurve) : void  参数  relativePath   应用这个曲线的游戏物体的路径。relativePath 被格式化为一个路径 名。入:“root/spine/leftArm”如果 relativePath 为空,表示该动画剪辑所附加的游戏物体。  type   被进行动画处理的组件的类类型。  propertyName  被动画处理的属性的名称或路径。  curve  动画曲线。  描述:给动画指定一个特定的曲线属性。如果曲线为 null 该曲线将被移除。如果曲线 为 null 该曲线将被移除。如果曲线属性已经存在,则会被替换。通常的名称是: “localPostion.x”,“localPostion.y”,“localPostion.z”,“localRotation.x”,“localRotation.y”, “localRotation.z”,“localRotation.w”,“localScale.x”,“localScale.y”,“localScale.z”。出于 性能考虑 Transform 的位置、旋转和缩放只能被所谓一个动画属性。     //对 x 坐标的位置进行动画处理  function Start (){  //创建曲线  var curve = AnimationCurve.Linear(0, 1, 2, 3);  //用曲线创建剪辑  var clip = new AnimationClip();  clip.SetCurve("", Transform, "localPosition.x", curve);  //添加并播放剪辑  animation.AddClip(clip, "test");  animation.Play("test");  }  @script RequireComponent(Animation)  Material 属性可以使用 shader 到处的名称制作动画属性。通常的属性名称是: “_MainTex”,“_BumpMap”,“_LightMap”,“_Color”,“_SpecColor”,“_Emmission”。      Float 属性“PropertyName”  Vector4 属性“PropertyName.x ”“ PropertyName.x ”   “ PropertyName.x ”  “PropertyName.x”  Color 属性“PropertyName.r”“PropertyName.g”“PropertyName.b” “PropertyName.a”  UV 旋转属性“PropertyName.rotation”;UB 便宜和缩放“PropertyName.offset.x” “PropertyName.offset.y”“PropertyName.scale.x”“PropertyName.scale.y”  对于在同一个 Renderer 上的多个索引材质,你可以像这样加前缀 “[1]._MainTex.offset.y”。  //对 alpha 值和主要材质地平线补偿进行动画处理  function Start () {  var clip = new AnimationClip ();  clip.SetCurve  ("",  typeof(Material),  "_Color.a",AnimationCurve  (Keyframe(0,  0,  0,  0),  Keyframe(1, 1, 0, 0)));  clip.SetCurve ("", typeof(Material), "_MainTex.offset.x",AnimationCurve.Linear(0, 1, 2, 3));  animation.AddClip (clip, clip.name);  animation.Play(clip.name);  }  @script RequireComponent(Animation)  继承的成员  继承的变量   name  对象名称  hideFlags 该物体是否被隐藏,保存在场景中或被用户修改  继承的函数   GetInstanceID 返回该物体的实例 id  继承的类函数   operator bool 这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体、组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代理。  FindObjectsOfType 返回所有类型为 type 的激活物体。  FindObjectsOfType 返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator!=  比较两个物体是否不同。  DontDestroyOnLoad  加载新场景时确保目标物体不被自动销毁。  AssetBundle    类,继承自 Object。AssetBundles 让你通过 WWW 类流式加载额外的资源并在运行时 实例化它们。AssetBundles 通过 BuildPipeline.BuildAssetBundle 创建。参见: WWW.assetBundle  ,Loading Resources at Runtime  ,BuildPipeline.BuildPlayer  function Start () {  var www = new WWW ("http://myserver/myBundle.unity3d");  yield www;  //获取指定的主资源并实例化  Instantiate(www.assetBundle.mainAsset);      }  变量  ◆  var mainAsset : Object  描述:竹资源在构建资源 boundle 时指定(只读)。该功能可以方便的找到 bundle 内的 主资源。例如,你也许想将预设一个角色并包括所有纹理、材质、网格和动画文件。但是 完全操纵角色的预设应该是你的 mainAsset 并且可以被容易的访问。  function Start () {  var www = new WWW ("http://myserver/myBundle.unity3d");  yield www;  //获取指定的主资源并实例化  Instantiate(www.assetBundle.mainAsset);  }  函数  ◆  function Contains (name : string) : bool   描述:如果 AssetBundle 的名称中包含特定的对象则进行检索。如果包含则返回真。  ◆  function Load (name : string) : Object   描述:从 bundle 中加载名为 name 的物体。  ◆  function Load (name : string, type : Type) : Object  描述:从 bundle 中加载名为 name 的 type 类物体。  ◆  function LoadAll (type : Type) : Object[ ]  描述:加载所有包含在资源 bundle 中且继承自 type 的物体。  ◆  function LoadAll () : Object[ ]  描述:加载包含在资源 bundle 中的所有物体。  ◆  function Unload (unloadAllLoadedObjects : bool) : void  描述:写在 bundle 中的所有资源。Unload 释放 bundle 中所有序列化数据。当 unloadAllLoaderObjects 为假,bundle 内的序列化数据将被写在,但是任何从这个 bundle 中 实例化的物体都将完好。当然,你不能从这个 bundle 中加载更多物体。当 unloadAllLoaderObjects 为真,所有从该 bundle 中加载的物体也将被销毁。如果  场景中有游戏物体引用该资源,那么引用也会丢失。  继承的成员  继承的变量   name  对象名称  hideFlags 该物体是否被隐藏,保存在场景中或被用户修改  继承的函数   GetInstanceID 返回该物体的实例 id  继承的类函数   operator bool 这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体、组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代理。  FindObjectsOfType 返回所有类型为 type 的激活物体。  FindObjectsOfType 返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator!=  比较两个物体是否不同。      DontDestroyOnLoad  加载新场景时确保目标物体不被自动销毁。  AudioClip  类,继承自 Object。音频数据的容器。一个 AudioClip 以压缩或未压缩的格式存储音频 文件。AudioClips 被 AudioSources 参考或引用来播放声音。参见组件参考的 AudioClip.component。  变量  ◆  var isReadyToPlay : bool  描述:有没流式音频剪辑准备播放?(只读)如果 AudioClip 是从网站上下载的,此变 量用来判断下载到的数据是否足够不间断的播放。对于不是来自 web 的流的 AudioClips, 该值总是真。  function Start (){  www=new WWW(url);  audio.clip=www.audioClip;  }  function Update (){  if(!audio.isPlaying && audio.clip.isReadyToPlay)  audio.Play();  }  ◆  var length : float    描述:音频剪辑的长度,以秒计(只读)。  audio.Play();  //等待音频播放完成  yield.WaitForSeconds(audio.clip.length);  继承的成员  继承的变量   name  对象名称  hideFlags 该物体是 否被隐藏,保存在场景中或被用户修改  继承的函数   GetInstanceID 返回该物体的实例 id  继承的类函数   operator bool 这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体、组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代理。  FindObjectsOfType 返回所有类型为 type 的激活物体。  FindObjectsOfType 返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator!=  比较两个物体是否不同。  DontDestroyOnLoad  加载新场景时确保目标物体不被自动销毁。  Component  类,继承自 Object。音频数据的容器。所有附加到游戏物体上的对象的基类。  变量  ◆  var animation : Animation  描述:附加到这个 GameObject 的 Animation。(没有则为 null)      ◆  var audio : AudioSource  描述:附加到这个 GameObject 的 AudioSource。(没有则为 null)  audio.Play()  ◆  var camera : Camera  描述:附加到这个 GameObject 的 Camera。(没有则为 null)  ◆  var collider : Collider  描述:附加到这个 GameObject 的 Collider。(没有则为 null)  collider.material.dynamicFriction =1  ◆  var constantForce : ConstantForce  描述:附加到这个 GameObject 上的 ConstantForce(没有则为 null)。  ◆  var gameObject : GameObject   描述:这个组件所附加的游戏物体。组件总是附着在游戏物体上。  print(gameObject.name);  ◆  var guiText : GUIT ext  描述:附加到这个 GameObject 上的 GUIText(没有则为 null)。  guiText.text = "Hello World";  ◆  var guiTexture : GUITexture  描述:附加到这个 GameObject 上的 GUITexture(只读)(没有则为 null)。  ◆  var hingeJoint : HingeJoint  描述:附加到这个 GameObject 的 HingeJoint(没有则为 null)。  hingeJoint.motor.targetVelocity = 5;  ◆  var hingeJoint : HingeJoint  描述:附加到这个 GameObject 的 HingeJoint(没有则为 null)。  ◆  var light : Light  描述:附加到这个 GameObject 的 Light(没有则为 null)。  ◆  var networkView : NetworkView  描述:附加到这个 GameObject 的 NetworkView(只读)(没有则为 null)。  networkView.RPC("MyFunction", RPCMode.All, "someValue");  ◆  var particleEmitter : ParticleEmitter  描述:附加到这个 GameObject 的 ParticleEmitter(没有则为 null)。  particleEmitter.emit = true;  ◆  var renderer : Renderer  描述:附加到这个 GameObject 的 Renderer。(没有则为 null)  ◆  var rigidbodyr : Rigidbody  描述:附加到这个 GameObject 的 rigidbody。(没有则为 null)  ◆  var tag : string  描述:附加到这个 GameObject 的 rigidbody。标签可以用来标识一个游戏物体。标签在 使用前必须在标签管理器中定义。  ◆  var transform : Transform  描述:附加到这个 GameObject 的 Transform。(没有则为 null)  transform.Translate(1, 1, 1);  函数  ◆  function  BroadcastMessage  (methodName  :  string,  parameter  :  object  =  null,  options :       SendMessageOptions = SendMessageOptions.RequireReceiver) : void  描述:在这个游戏物体或其任何子物体上的每个 MonoBehaviour 上调用 methodName 方法。通过使用零参数,结婚搜方法可以选择忽略 parameter。如果 options 被设置为 SednMessageOptions.RequireReceiver,那么如果这个消息没有被任何组件接受时,将打印 一个错误信息。  //使用值 5 调用 ApplyDamage  BroadcastMessage ("ApplyDamage", 5.0);  //每个附加到该游戏物体及其所有子物体上含有 ApplyDamage 函数的脚本都会被调用  function ApplyDamage (damage : float) {  print (damage);  }  ◆  function CompareTag (tag : string) : bool   描述:这个游戏物体有被标签为 tag 吗?  //立即销毁触发器,销毁任何进入到触发器的碰撞器,这些碰撞器被标记为 Player  function OnTriggerEnter (other : Collider) {  if (other.CompareTag ("Player")) {  Destroy (other.gameObject);  }  }  ◆  function GetComponent (type : Type) : Component  描述:如果游戏物体上附加了这个组件,则返回一个 Type 类,如果没有则返回 null。  //等同于 Transform curTransform = transform  var curTransform : Transform = GetComponent (Transform);  //你可以像访问其他组件一样的访问脚本组件  function Start () {  var someScript : ExampleScript = GetComponent (ExampleScript);  someScript.DoSomething ();  }  for c#  public class Something : MonoBehaviour{  void St art(){  ExampleScript someScript = GetComponent();  someScript.DoSomething ();  }  }  ◆  function GetComponent (type : string) : Component  描述:如果游戏物体上附加了这个组件,则返回一个 Type 类,如果没有则返回 null。 处于性能原因,最好用 Type 调用 GetComponent 而不是字符串。不过有时你可能无法得到 Type。例如当是同从 Javascript 中访问 c#时。这时你可以简单的通过名称而不是类型访问该 组件。  //为了访问附加在同一物体上的脚本中的公有变量与函数  script = GetComponent(ScriptName);  script.DoSomething ();  ◆  function GetComponentInChildren (t : Type) : Component      描述:返回 type 类型组件,这个组件位于 GameObject 或任何它的子物体上,使用深 度优先搜索。只有激活的最贱会被返回。  var script : ScriptName = GetComponentInChildren(ScriptName);  script.DoSomething ();  for c#  ScriptName script = GetComponentInChildren();  script.DoSomething ();  ◆  function GetComponents (type : type) : Component[]  描述:返回 GameObject 上所有 type 类型组件。  //关闭该游戏物体铰链上的所有弹簧   var hingeJoints = GetComponents (HingeJoint);  for (var joint : HingeJoint in hingeJoints) {  joint.useSpring = false;  }  for c#  HingeJoint[] hingeJoints = GetComponents();  for (HingeJoint joint in hingeJoints) {  joint.useSpring = false;  }  ◆  function  GetComponentsInChildren  (t:Type , includeInactive:bool=false)  :  Component[]  描述:返回 GameObject 上或其子物体上所有 type 类型组件。  //关闭该游戏物体极其子物体上的铰链上的所有弹簧  var hingeJoints = GetComponentsInChildren (HingeJoint);  for (var joint : HingeJoint in hingeJoints) {  joint.useSpring = false;  }  for c#  HingeJoint[] hingeJoints = GetComponentsInChildren();  for (HingeJoint joint  in hingeJoints) {  joint.useSpring = false;  }  继承的成员  继承的变量   name  对象名称  hideFlags 该物体是否被隐藏,保存在场景中或被用户修改  继承的函数   GetInstanceID 返回该物体的实例 id  继承的类函数   operator bool 这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体、组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代理。  FindObjectsOfType 返回所有类型为 type 的激活物体。      FindObjectsOfType 返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator!=  比较两个物体是否不同。  DontDestroyOnLoad  加载新场景时确保目标物体不被自动销毁。  Behaviour  类,继承自 Component。Behaviours 是可以被启用或禁用的组件。参见 MonoBehaviour 和 Component。  变量  ◆  var enabled : bool  描述:启用 Behaviours 被更新,禁用 Behaviours 不被更新。这将在 behaviour 的坚实面 板中显示为一个小的复选框 GetComponent(PlayerScript)enabled = false;  继承的成员  继承的变量   transform  附加到该 GameObject 的 Transform(没有返回 null)  rigidbody 附加到该 GameObject 的 Rigidbody(没有返回 null)  camera  附加到该 GameObject 的 Camera(没有返回 null)  light 附加到该 GameObject 的 Light(没有返回 null)  animation  附加到该 GameObject 的 Animation(没有返回 null)  constantForce 附加到该 GameObject 的 ConstantForce(没有返回 null)  renderer 附加到该 GameObject 的 Renderer(没有返回 null)  audio  附加到该 GameObject 的 Audio(没有返回 null)  guiText  附加到该 GameObject 的 GuiText(没有返回 null)  networkView 附加到该 GameObject 的 NetworkView(没有返回 null)  guiTexture  附加到该 GameObject 的 GuiTexture(没有返回 null)  collider  附加到该 GameObject 的 Collider(没有返回 null)  hingeJoint  附加到该 GameObject 的 HingeJoint(没有返回 null)  particleEmitter  附加到该 GameObject 的 ParticleEmitter(没有返回 null)  gameObject  该组件所附加的游戏物体。组件总是会附加到游戏物体上  tag  该游戏物体的标签。  name  对象的名称  hideFlags 该物体是否被隐藏,保存在场景中或被用户修改  继承的函数   GetComponent  如果游戏附体上附加了一个,则返回 type 类组件,没有则返回 null  GetComponentInChildren  如果该组件位于 GameObject 或任何其子物体上,返回 type 类组件,使用深度优先搜索  GetComponentsInChildren  如果这些组件位于 GameObject 或任何它的子物体上,返回 type 类组件。  GetComponents  返回 GameObject 上所有 type 类的组件  CompareTag  该游戏物体被是否被标签为 tag?  SendMessageUpwards  在该游戏物体的每个 MonoBehaviour 和该行为的父对象上调用 名为 methodName 的方法  SendMessage 在该游戏物体的每个 MonoBehaviour 上调用 methodName 方法  BroadcastMessage 在这个游戏物体或其任何子物体上的每个 MonoBehaviour 上调用 methodName      GetInstanceID 返回该物体的实例 id  继承的类函数   operator bool 这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体、组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代理。  FindObjectsOfType 返回所有类型为 type 的激活物体。  FindObjectOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator!=  比较两个物体是否不同。  DontDestroyOnLoad  加载新场景时确保目标物体不被自动销毁。  Animation  类,继承自 Behaviour,可枚举。动画组件用来播放动画。你可以给动画组件赋予一个 动画剪辑,并从脚本中控制它的播放。Unity 中的动画系统是基于权值的,并且支持动画混 合、附加动画、动画合成、层和所有动画播放方面的完全控制。  为了播放动画可使用 Animation.Play。  为了在动画间渐变可使用 Animation.CrossFade。  为了改变动画的层可使用 AnimationState.layer。  为了改变动画的包裹模式(循环、单次、往返)可使用 Animation.wrapMode 或  AnimationState.wrapMode。  AnimationState 可以被用来调整播放速度和直接控制混合语合成。  Animation 也支持枚举,因此你可以像这样循环所有的 AnimationStates。  //使该角色上所有动画半速播放  for (var state : Anima tionState in animation) {  state.speed = 0.5;  }  变量  ◆  var animateOnlyIfVisible : bool  描述:启用后,Unity 会在认为动画不可见的时候停止播放。该选项可以节省资源。  ◆  var animatePhysics : bool  描述:启用后,动画奖在物理循环中执行。这只在与运动学刚体结合时有用。一个动 画平台可以应用速度和摩擦到其顶部的刚体。为了利用这个,animatePhysics 必须被启用, 并且动画物体必须为一个运动学刚体。  ◆  var clip : AnimationClip  描述:默认动画。  animation.Play(animation.clip);  //等待动画完成  yield WaitForSeconds (animation.clip.length);  ◆  var isPlaying : bool  描述:是否正在播放动画?  //在动画没有播放时播放这个动画。  function OnMouseEnter() {  if (!animation.isPlaying)animation.Play();  }      ◆  var playAutomatically : bool  描述:默认的动画剪辑(Animation.clip)是否在开始时自动播放?  animation.playAutomatically = true;  ◆  var this[name : string] : AnimationState  描述:返回名为 name 的动画状态。  //获取 walk 动画状态并设置它的速度  animation["walk"].speed = 2.0;  //获取 run 动画状态并设置它的速度  animation["run"].weight = 0.5;  ◆  var wrapMode : WrapMode  描述:超出剪辑播放时间之外时如何处理?  WrapMode.Default:从剪辑中获取回绕模式(默认为 Once)。  WrapMode.Once:当时间到达末尾时停止动画。  WrapMode.Loop:当时间到达末尾时从头开始播放。  WrapMode.PingPong:在开始和结束之间来回播放。  WrapMode.ClampForever:播放动画。当它到达末端时,它将保持在最后一帧。  //让动画循环  animation.wrapMode = WrapMode.Loop;  函数  ◆  function AddClip (clip : AnimationClip, newName : string) : void  描述:添加一个 clip 到 Animation,它的名称为 newName。  var walkClip : AnimationClip;  animation.AddClip(walkClip, "walk");  ◆  function AddClip (clip : AnimationClip, newName : string, firstFrame : int, lastFrame :  int, addLoopFrame : bool = false) : void  描述:添加 clip 只在 firstFrame 和 lastFrame 之间播放。这个新的剪辑也将被使用名称 newName 并添加到 Animation。addLoopFrame:是否要插入额外的帧一边匹配第一帧?如 果制作循环动画就要打开这个。如果存在一个同名的剪辑,老的将被覆盖。  //分割默认 的剪辑为 shoot,walk 和 idle 动画  animation.AddClip(animation.clip, "shoot", 0, 10);  //walk 和 idle 将在末尾添加额外的循环真  animation.AddClip(animation.clip, "walk", 11, 20, true);  animation.AddClip(animation.clip, "idle", 21, 30, true);  ◆  function  Blend  (animation :  string,  targetWeight  :  float  =  1.0F,  fadeLength  :  float  =  0.3F) : void  描述:在接下来的 time 内混合名为 animation 的动画得到 targetWeight。其他动画播放 不会受影响。  ◆  function CrossFade (animation : string, fadeLength : float  = 0.3F, mode : PlayMode =  PlayMode.StopSameLayer) : void  描述:淡入名为 animation 的动画,并在 time 内淡出其他动画。如果模式是 PlayMode.StopSameLayer ,在同一层上淡入的动画将会被淡出。如果模式是 PlayMode.StopAll,当动画被淡入后,所有动画都会被淡出。如果动画被设置为循环,在播 放后将停止并回放。  //淡入 walk 循环并淡出同一层上所有其他动画。      //0.2 秒内完成淡入  animation.CrossFade("Walk", 0.2);  //当玩家想要移动的时候,使角色动画在 Run 和 Idle 动画之间渐变。  function Update (){  if (Mathf.Abs(Input.GetAxis("Vertical")) > 0.1)animation.CrossFade("Run");  else  animation.CrossFade("Idle");  }  ◆  function  CrossFadeQueued  (animation  :  string,  fadeLength  :  float  =  0.3F,  queue  :  QueueMode = QueueMode.CompleteOthers, mode : PlayMode = PlayMode.StopSameLayer) :  AnimationState  描述:在前一动画播放完后渐变到下一个动画。例如你可以播放一个特定的动画序列。 动画在播放前复制自身,因此你可以再相同的动画间渐变,这可用来重叠两个相  同的动画。例如你可能有一个挥剑的动画,玩家快速挥动了 2 次,你可以回放这个动 画并从开始播放它,但会跳帧。  下面是可用的 queue modes:  下面是可用的 queue modes:  如果queue为 QueueMode.CompleteOthers 这个动画纸在所有其他动画都停止播放时才 开始。  如果 queue 为 QueueMode.PlayNow 这个动画将以一个复制的动画状态立即开始播放。  动画播放完成后它将自动清除它自己。在它播放完成后使用赋值的动画将导致一个异 常。  function Update (){  if (Input.GetButtonDown("Fire1"))   animation.CrossFadeQueued("shoot", 0.3, QueueMode.PlayNow);  }  ◆  function GetClipCount () : int  描述:获取当前 animation 的剪辑数。  ◆  function IsPlaying (name : string) : bool  描述:名为 name 的动画是否在播放?  function OnMouseEnter() {  if (!animation.IsPlaying("mouseOverEffect"))  animation.Play("mouseOverEffect");  }  ◆  function Play (mode : PlayMode = PlayMode.StopSameLayer) : bool  function Play (animation : string, mode : PlayMode = PlayMode.StopSameLayer) : bool  描述:立即播放该动画,没有任何混合。Play()将会开始播放名为 animation 的动画, 或者播放默认动画,且会在没有混合的情况下突然播放。如果模式为 PlayMode.StopSameLayer 所有在同一层上的动画都将被停止。如果模式是 PlayMode.StepAll 所有当前播放的动画都将被停止。如果动画正在播放,其他动画将被停止,但该动画会回 到开始位置。如果动画没有被设置为循环,播放完后将停止并回放。如果动画无法被播放 (没有该剪辑或没有默认动画),Play()会返回假。  //播放默认动画  animation.Play ();      //播放 walk 动画,停止该层内所有其他动画  animation.Play ("walk");  //播放 walk 动画,停止其他所有动画  animation.Play ("walk", PlayMode.StopAll);  ◆  function  PlayQueued  (animation  :  string,  queue  :  QueueMode  =  QueueMode.CompleteOthers, mode : PlayMode = PlayMode.StopSameLayer) : AnimationState  描述:在前一动画播放完后渐变一个动画。例如你可以播放一个特定的动画序列。动 画状态在播放前复制自身,因此你可以再相同的动画之间渐变。这可用来重叠两个相同的 动画。例如你可能有一个挥剑的动画。玩家快速的砍了两次,你可以回放这个动画,并且 从开始播放,只不过会跳帧。  下面是可用的 queue modes:  如果queue为 QueueMode.CompleteOthers 这个动画纸在所有其他动画都停止播放时才 开始。  如果 queue 为 QueueMode.PlayNow 这个动画将以一个复制的动画状态立即开始播放。  动画播放完成后它将自动清除它自己。在它播放完成后使用赋值的动画将导致一个异 常。  function Update (){  if (Input.GetButtonDown("Fire1"))   animation.PlayQueued("shoot", QueueMode.PlayNow);  }  ◆  function RemoveClip (clip : AnimationClip) : void  描述:从动画列表中移除剪辑。这将移除该剪辑及所有棘突它的动画状态。  ◆  function RemoveClip (clipName : string) : void  描述:从动画列表中移除剪辑。这将移除指定名称的动画状态。  ◆  function Rewind (name : string) : void  描述:回退名为 name 的动画。  //回退 walk 动画到开始  animation.Rewind("walk");  ◆  function Rewind () : void  描述:回退所有动画。  //回退所有动画到开始  animation.Rewind();  ◆  function Sample () : void  描述:在当前状态采样动画。如果想要设置一些动画状态,并采样一次,可以用这个。  //设置一些状态  animation["MyClip"].time = 2.0;  animation["MyClip"].enabled = true;  //采样动画  animation.Sample();  animation["MyClip"].enabled = false;  ◆  function Stop () : void  描述:停止所有由这个 Animation 开始的动画。停止一个动画并回退到开始。  //终止所有动画  animation.Stop();      ◆  function Stop (name : string) : void  描述:停止名为 name 的动画。停止一个动画并回退到开始。  //停止 walk 动画  animation.Stop ("walk");  ◆  function SyncLayer (layer : int) : void  描述:同步所有在该层的动画的播放速度。当混合两个循环动画时,它们通常有不同 长度。例如一个 walk 循环要比 run 更长。当混合它们时,你需要确保行走于跑循环中脚的 位置相同。也就是说,动画的播放速度必须被调整一边动画同步。SyncLayer 将给予它们的 混合权值计算在该层上所有动画播放的平均诡异化速度,然后对该层上的动画使用播放速 度。  //放置 walk 和 run 动画在同一层,并同步它们的速度  animation["walk"].layer = 1;  animation["run"].layer = 1;  animation.SyncLayer(1);  继承的成员  继承的变量   enable  启用则 Behaviour 被更新,不启用则不更新  transform  附加到该 GameObject 的 Transform(没有返回 null)  rigidbody 附加到该 GameObject 的 Rigid body(没有返回 null)  camera  附加到该 GameObject 的 Camera(没有返回 null)  light 附加到该 GameObject 的 Light(没有返回 null)  animation  附加到该 GameObject 的 Animation(没有返回 null)  constantForce 附加到该 GameObject 的 ConstantForce(没有返回 null)  renderer 附加到该 GameObject 的 Renderer(没有返回 null)  audio  附加到该 GameObject 的 Audio(没有返回 null)  guiText  附加到该 GameObject 的 GuiText(没有返回 null)  networkView 附加到该 GameObject 的 NetworkView(没有返回 null)  guiTexture  附加到该 GameObject 的 GuiTexture(没有返回 null)  collider  附加到该 GameObject 的 Collider(没有返回 null)  hingeJoint  附加到该 GameObject 的 HingeJoint(没有返回 null)  particleEmitter  附加到该 GameObject 的 ParticleEmitter(没有返回 null)  gameObject  该组件所附加的游戏物体。组件总是会附加到游戏物体上  tag  该游戏物体的标签。  name  对象的名称  hideFlags 该物体是否被隐藏,保存在场景中或被用户修改  继承的函数   GetComponent  如果游戏附体上附加了一个,则返回 type 类组件,没有则返回 null  GetComponentInChildren  如果该组件位于 GameObject 或任何其子物体上,返回 type 类组件,使用深度优先搜索  GetComponentsInChildren  如果这些组件位于 GameObject 或任何它的子物体上,返回 type 类组件。  GetComponents  返回 GameObject 上所有 type 类的组件  CompareTag  该游戏物体被是否被标签为 tag?  SendMessageUpwards  在该游戏物体的每个 MonoBehaviour 和该行为的父对象上调用     名为 methodName 的方法  SendMessage 在该游戏物体的每个 MonoBehaviour 上调用 methodName 方法  BroadcastMessage 在这个游戏物体或其任何子物体上的每个 MonoBehaviour 上调用 methodName  GetInstanceID 返回该物体的实例 id  继承的类函数   operator bool 这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体、组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代理。  FindObjectsOfType 返回所有类型为 type 的激活物体。  FindObjectOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator!=  比较两个物体是否不同。  DontDestroyOnLoad  加载新场景时确保目标物体不被自动销毁。  AudioListener  类,继承自 Behaviour。标示在三维空间中的侦听器。这个类可实现麦克风一样的设备。 它记录周围的声音,并通过玩家的扬声器播放。在场景中只能有一个侦听器。参见组件参 考中 AudioSource,AudioListener,component。  变量  ◆  var velocityUpdateMode : AudioVelocityUpdateMode  描述:可让你设置 Audio Listener 是否应该用固定或动态方式更新。如果你遇到了多普 勒效应问题,请确保设置这个更新于 Audio Lis tener 的移动在同一循环内。如果它被附加到 一个刚体,默认设置将自动设置该侦听器在固定的更新周期内更新,动态的以其他方式。  listener.velocityUpdateMode = AudioVelocityUpdateMode.Fixed;  类变量  ◆  static var pause : bool  描述:音频的暂停状态。如果设置为真,该侦听器将不会产生声音。类似于设置音量 为 0.0  AudioListener.pause = true;  ◆  static var volume : float  描述:控制游戏的音量。  AudioListener.volume = 0.5;  继承的成员  继承的变量   enable  启用则 Behaviour 被更新,不启用则不更新  transform  附加到该 GameObject 的 Transform(没有返回 null)  rigidbody 附加到该 GameObject 的 Rigidbody(没有返回 null)  camera  附加到该 GameObject 的 Camera(没有返回 null)  light 附加到该 GameObject 的 Light(没有返回 null)  animation  附加到该 GameObject 的 Animation(没有返回 null)  constantForce 附加到该 GameObject 的 ConstantForce(没有返回 null)  renderer 附加到该 GameObject 的 Renderer(没有返回 null)  audio  附加到该 GameObject 的 Audio(没有返回 null)      guiText  附加到该 GameObject 的 GuiText(没有返回 null)  networkView 附加到该 GameObject 的 NetworkView(没有返回 null)  guiTexture  附加到该 GameObject 的 GuiTexture(没有返回 null)  collider  附加到该 GameObject 的 Collider(没有返回 null)  hingeJoint  附加到该 GameObject 的 HingeJoint(没有返回 null)  particleEmitter  附加到该 GameObject 的 ParticleEmitter(没有返回 null)  gameObject  该组件所附加的游戏物体。组件总是会附加到游戏物体上  tag  该游戏物体的标签。  name  对象的名称  hideFlags 该物体是否被隐藏,保存在场景中或被用户修改  继承的函数   GetComponent  如果游戏附体上附加了一个,则返回 type 类组件,没有则返回 null  GetComponentInChildren  如果该组件位于 GameObject 或任何其子物体上,返回 type 类组件,使用深度优先搜索  GetComponentsInChildren  如果这些组件位于 GameObject 或任何它的子物体上,返回 type 类组件。  GetComponents  返回 GameObject 上所有 type 类的组件  CompareTag  该游戏物体被是否被标签为 tag?  SendMessageUpwards  在该游戏物体的每个 MonoBehaviour 和该行为的父对象上调用 名为 methodName 的方法  SendMessage 在该游戏物体的每个 MonoBehaviour 上调用 methodName 方法  BroadcastMessage 在这个游戏物体或其任何子物体上的每个 MonoBehaviour 上调用 methodName  GetInstanceID 返回该物体的实例 id  继承的类函数   operator bool 这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体、组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代理。  FindObjectsOfType 返回所有类型为 type 的激活物体。  FindObjectOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator!=  比较两个物体是否不同。  DontDestroyOnLoad  加载新场景时确保目标物体不被自动销毁。  AudioSource  类,继承自 Behaviour。标示三位空间中的音频源。AudioSource 被附加到 GameObject 以便在三位环境中播放声音。单声道声音以 3D 播放。为了播放三位声音,也需要一个 AudioListener。音频侦听器通常附加在使用的相机上。立体声总是不以距离为基础衰减。你 可以使用 Play,Pause,Stop 来播放音频剪辑。也可以再播放时使用 volume 属性调整音量, 或者使用 time 来定位。多个声音可以使用 PlayOneShot 在一个 AudioSource 上播放。可以 使用 PlayClipAtPoint 在三位空间中的一个静态位置播放剪辑。参见 AudioListener,AudioClip, AudioSource component。  变量  ◆  var clip : AudioClip      描述:默认播放的 AudioClip。  var otherClip: AudioClip;  //  播放默认声音  audio.Play();  //  等待音频结束  yield WaitForSeconds (audio.clip.length);  //  指定其他音频并播放  audio.clip = otherClip;  audio.Play();  ◆  var ignoreListenerVolume : bool  描述:这使音频源不考虑音频侦听器的音量。播放背景音乐时可启用这个。当播放背 景音乐时,你希望音乐不受普通音量设置的影响,可以使用该变量。  audio.ignoreListenerVolume = true;  ◆  var isPlaying : bool  描述:clip 现在生意否在播放?  //当音频组件停止播放时,播放 otherClip  var otherClip : AudioClip;     function Update (){  if (!audio.isPlaying) {  audio.clip = otherClip;  audio.Play();  }  }  ◆  var loop : bool  描述:音频剪辑是否循环?如果你在一个正在播放的 AudioSource 上禁用循环,声音将 在当前循环结束后停止。  //  停止声音循环  audio.loop = false;  ◆  var maxVolume : float  描述:音频剪辑播放时的最大音量。不论你距离多近,声音不会比这个值更大。  audio.maxVolume = 0.5;  参见:minVolume, rolloffFactor.  ◆  var minVolume : float  描述:音频剪辑播放时的最小音量。不论你距离多远,声音不会比这个还小。  audio.minVolume = 0.5;  参见:maxVolume, rolloffFactor.  ◆  var pitch : float  描述:音频源的音调。  audio.pitch = 1.0;  ◆  var playOnAwake : bool  描述:如果设置为真,音频源江在 awake 时自动播放。  if(! audio.playOnAwake) {  audio.Play();//  如果没有设置为 Awake 时播放,那么播放该剪辑      }  ◆  var rolloffFactor : float  描述:设置声音衰减的速度。该值越大,侦听器必须更接近才能听到声音。  audio.rolloffFactor = 0.1;  参见:minVolume, maxVolume.  ◆  var time : float  描述:以秒计算的播放位置。使用这个来读当前播放时间或寻找新的播放时间。  ◆  var velocityUpdateMode : AudioVelocityUpdateMode  描述:Audio Source 是否应该以固定或动态的方式更新?如果你遇到了这个源的多普勒 效应问题,请确保设置这个更新与 Audio Source 的移动  在同一循环内。如果它被附加到一个刚体,默认设置将自动设置该源在固定的更新周 期内更新,以动态的以及其他方式。  ◆  var volume : float  描述:音频源的音量。  audio.volume = 0.2;  函数  ◆  function Pause () : void  描述:暂停播放 clip。  audio.Pause();  参见:Play,St op 函数  ◆  function Play () : void  描述:播放 clip。  audio.Play();  参见:Pause,Stop 函数  ◆  function PlayOneShot (clip : AudioClip, volumeScale : float = 1.0F) : void  描述:播放一个 AudioClip。  //与其他物体碰撞时播放 impact 音频剪辑  var impact : AudioClip;  function OnCollisionEnter () {  audio.PlayOneShot(impact);  }  ◆  function Stop () : void  描述:停止播放 clip。  audio.Stop();  参见:Play,Pause 函数  类方法  ◆  static function PlayClipAtPoint (clip : AudioClip, position : Vector3, volume : float =  1.0F) : void  描述:在制定位置上播放剪辑。播放完成后自动消除音频源。正在播放的声音的音频 源被返回。  //在制定位置播放 clip  var clip : AudioClip;  AudioSource.PlayClipAtPoint(clip, Vector3 (5, 1, 2));  如果想进一步控制播放,可以使用下面代码。      var theClip : AudioClip;  PlayAudioClip(theClip, transform.position, 1);  function PlayAudioClip (clip : AudioClip, position : Vector3, volume : float)  {  var go = new GameObject ("One shot audio");  go.transform.position = position;  var source : AudioSource = go.AddComponent (AudioSource);  source.clip = clip;  source.volume = volume;  source.Play ();  Destroy (go, clip.length);  return source;  }  Destroy (go, clip.length);  return source;  }  继承的成员  继承的变量   enable  启用则 Behaviour 被更新,不启用则不更新  transform  附加到该 GameObject 的 Transform(没有返回 null)  rigidbody 附加到该 GameObject 的 Rigidbody(没有返回 null)  camera  附加到该 GameObject 的 Camera(没有返回 null)  light 附加到该 GameObject 的 Light(没有返回 null)  animation  附加到该 GameObject 的 Animation(没有返回 null)  constantForce 附加到该 GameObject 的 ConstantForce(没有返回 null)  renderer 附加到该 GameObject 的 Renderer(没有返回 null)  audio  附加到该 GameObject 的 Audio(没有返回 null)  guiText  附加到该 GameObject 的 GuiText(没有返回 null)  networkView 附加到该 GameObject 的 NetworkView(没有返回 null)  guiTexture  附加到该 GameObject 的 GuiTexture(没有返回 null)  collider  附加到该 GameObject 的 Collider(没有返回 null)  hingeJoint  附加到该 GameObject 的 HingeJoint(没有返回 null)  particleEmitter  附加到该 GameObject 的 ParticleEmitter(没有返回 null)  gameObject  该组件所附加的游戏物体。组件总是会附加到游戏物体上  tag  该游戏物体的标签。  name  对象的名称  hideFlags 该物体是否被隐藏,保存在场景中或被用户修改  继承的函数   GetComponent  如果游戏附体上附加了一个,则返回 type 类组件,没有则返回 null  GetComponentInChildren  如果该组件位于 GameObject 或任何其子物体上,返回 type 类组件,使用深度优先搜索  GetComponentsInChildren  如果这些组件位于 GameObject 或任何它的子物体上,返回 type 类 组件。  GetComponents  返回 GameObject 上所有 type 类的组件      CompareTag  该游戏物体被是否被标签为 tag?  SendMessageUpwards  在该游戏物体的每个 MonoBehaviour 和该行为的父对象上调用 名为 methodName 的方法  SendMessage 在该游戏物体的每个 MonoBehaviour 上调用 methodName 方法  BroadcastMessage 在这个游戏物体或其任何子物体上的每个 MonoBehaviour 上调用 methodName  GetInstanceID 返回该物体的实例 id  继承的类函数   operator bool 这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体、组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代理。  FindObjectsOfType 返回所有类型为 type 的激活物体。  FindObjectOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator!=  比较两个物体是否不同。  DontDestroyOnLoad  加载新场景时确保目标物体不被自动销毁。  Camera  类,继承自 Behaviour。Camera 是一个设备,玩家通过它来看世界。屏幕空间点用像素 定义。屏幕左下为(0,0);右上是(pixelWidth.pixelHeight)。z 的位置是以世界单位衡量到相机 的距离。视口空间点是归一化的并且是相对于相机的。相机左下为(0,0);右上是(1,1)。z 的 位置是以世界单位衡量到相机的距离。世界空间点是以全局坐标定义的(例如 Transform.position)。  参见:camera component  变量  ◆  var aspect : float  描述:长宽比(宽度除以高度)。默认的长宽比是从屏幕的长宽比计算得到的,即使相 机没有被渲染到全屏。如果修改了相机的 aspect 比,这个值将保持到你调用 camera.ResetAspect();这将充值猖狂比为屏幕的长宽比。  if(camera.aspect > 1.0)  print ("Screen is more wide than tall!");  else  print ("Screen is more tall than wide!");  参见:camera component,Screen 类。  ◆  var backgroundColor : Color  描述:屏幕将被清理未这个颜色。只能在 clearFlags 被设置为 CameraClearFlags.SolidColor (或设置为 CameraClearFlags.Skybox 但没有设置天空盒)时使用。  //来回变化背景色  var co lor1 = Color.red;  var color2 = Color.blue;  var duration = 3.0;  //设置清楚标记为该颜色  camera.clearFlags = CameraClearFlags.SolidColor;  function Update () {      var t = Mathf.PingPong (Time.time, duration) / duration;  camera.backgroundColor = Color.Lerp (color1, color2, t);  }  参见:camera component,Camera.clearFlags 属性。  ◆  var cameraToWorldMatrix : Matrix4x4  描述:从相机空间到世界空间的变换矩阵(只读)。使用次变量计算相机空间中的一个 点在世界坐标中的什么位置。注意相机空间与 openGL 的约定相同。相机前味 z 轴负方向。 这不同于 Unity 的约定,向前微 z 轴争相。  //以 distance 单位,沿着相机所看到的方向,在屏幕中绘制一个黄色的球,  var distance = ‐1.0;  function OnDrawGizmosSelected () {  var m = camera.cameraToWorldMatrix;  var p = m.MultiplyPoint (Vector3(0,0,distance));  Gizmos.color = Color .yellow;  Gizmos.DrawSphere (p, 0.2);  }  ◆  var clearFlags : CameraClearFlags  描述:相机如何清楚背景。可以是 CameraClearFlags.Skybox , CameraClearFlags.SolidColor,CameraClearFlags.Depth,CameraClearFlags.Nothing。  //用背景色清除(忽略天空盒)  camera.clearFlags = CameraClearFlags.SolidColor;  ◆  var cullingMask : int  描述:这个用来选择性的渲染部分场景。如果 GameObject 的 layerMask 与相机的 cullingMask 进行 AND 操作后为 0,则这个游戏物体对于该相机是不可见的。参考 Layers 获 取更多信息。  //只渲染在第一层中的物体(默认层)  camera.cullingMask = 1 << 0;  参见:camera component  ◆  var depth : float  描述:相机在渲染顺序上的深度。具有较低深度的相机将在较高深度的相机之前渲染。 如果有多个相机并其中一些不需要覆盖整个屏幕,可以使用这个来控制相机的绘制次序。  //设置该相机在主相机之后渲染  camera.depth = Camer a.main.depth + 1;  参见:camera component,Camera.rect 属性  ◆  var farClipPlane : float  描述:远裁剪面的距离。  camera.farClipPlane = 100.0;  参见:camera component  ◆  var fieldOfView : float  描述:相机的视野,以度为党委。这是垂直视野。水平 FOV 取决于视口的宽高比。当 相机是正交时,fieldOfView 被忽略。(参考 orthographic)。  //设置附加到同一个游戏物体上的相机的 FOV 位 60  camera.fieldOfView = 60;  //设置主相机的视野为 80      Camera.main.fieldOfView = 80;  参见:camera component  ◆  var nearClipPlane : float  描述:近才见面的距离。  camera.nearClipPlane = 0.1;  参见:camera component  ◆  var orthographic : bool  描述:相机是正交的(true)还是透视的(false)?如果 orthographic 为 true,相机的 视野由 orthographicSize 定义。如果 orthographic 为 false,相机的视野由 fieldOfView 定义。  //设置相机为正交  camera.orthographic = true;  //设置主相机为正交  Camera.main.orthographic = true;  参见:camera component  ◆  var orthographicSize : float  描述:在正交模式下相机的一半尺寸。这个为视体垂直大小的一半。相机不是正交时, 水平视大小拒绝于视口的长宽比。  //设置相机的正交尺寸为 5  camera.orthographic = true;  camera.orthographicSize = 5;  //设置主相机的正交尺寸为 5  Camera.main.orthographic = true;  Camera.main.orthographicSize = 5;  参见:camera component  ◆  var pixelHeight : float  描述:相机的像素高度(只读)。  print ("Camera is " + camera.pixelHeight + " pixels high");  ◆  var pixelRect : Rect  描述:相机被渲染到屏幕像素坐标中的位置。  function Update () {  var r = camera.pixelRect;  print ("Camera displays fr om " + r.xMin + " to " + r.xMax + " pixel");  }  ◆  var pixelWidth : float  描述。相机的像素宽度(只读)。  print ("Camera is " + camera.pixelWidth + " pixels wide");  ◆  var projectionMatrix : Matrix4x4  描述:设置自动以的投影矩阵。如果你改变该矩阵,相机的渲染将不再给予它的 fieldOfView 更新,直到调用到 ResetProjectionMatrix。只有当真正需要一个非标准的投影时, 才使用自定义投影。该属性被 Unity 的水渲染使用来设置一个 oblique.projection 矩阵。使用 自定义投影需要了解变换和投影矩阵。  //让相机以有节奏的方式晃动  var originalProjection : Matrix4x4;  originalProjection = camera.projectionMatrix;      function Update () {  var p = originalProjection;  //改变原始矩阵的某些值  p.m01 += Mathf.Sin (Time.time * 1.2) * 0.1;  p.m10 += Mathf.Sin (Time.time * 1.5) * 0.1;  camera.projectionMatrix = p;  }  // 设置一个变异中心的投影,这里透视的消失点没有必要在屏幕的中心。 left/right/top/bottom 定义近裁剪面大小。例如相机的近裁剪面偏移中心的距离,改变该值 就可以看到相机视图的变化。  @script ExecuteInEditMode  var left = ‐0.2;  var right = 0.2;  var top = 0.2;  var bottom = ‐0.2;  function L ateUpdate () {  var cam = camera;  var  m  =  PerspectiveOffCenter(left,  right,  bottom,  top,cam.nearClipPlane,  cam.farClipPlane );  cam.projectionMatrix = m;  }  static function PerspectiveOffCenter(left : float, right : float,bottom : float, top : float,near :  float, far : float ) : Matrix4x4{   var x = (2.0 * near) / (right ‐ left);  var y = (2.0 * near) / (top ‐ bottom);  var a = (right + left) / (right ‐ left);  var b = (top + bottom) / (top ‐ bottom);  var c = ‐(far + near) / (far ‐ near);  var d = ‐(2.0 * far * near) / (far ‐ near);  var e = ‐1.0;  var m : Matrix4x4;  m[0,0] = x; m[0,1] = 0; m[0,2] = a;   m[0,3] = 0;  m[1,0] = 0; m[1,1] = y; m[1,2] = b; m[1,3] = 0;  m[2,0] = 0;   m[2,1] = 0; m[2,2] = c; m[2,3] = d;  m[3,0] = 0; m[3,1] = 0; m[3,2] = e;   m[3,3] = 0;  return m;  }  ◆  var rect : Rect  描述:相机被渲染到屏幕归一化坐标中的位置。rect 的范围从 0(左/下)到 1(右/上)。  //每次按下空格键时改变视口宽度  function Update () {      if (Input.GetButtonDown ("Jump")) {  //随机选择边缘  var margin = Random.Range (0.0, 0.3);  //设置矩形  camera.rect = Rect (margin, 0, 1 ‐ margin * 2, 1);  }  }  ◆  var targetTexture : RenderTexture  描述:目标渲染纹理(只限 UnityPro)。  ◆  var velocity : Vector3  描述:获取世界空间中相机的速度(只读)这是相机在上一帧以秒为单位的运动。  function Update () {  print ("Camera moving at " + camera.velocity.magnitude + " m/ s");  }  ◆  var worldToCameraMatrix : Matrix4x4  描述:从世界到相机空间的变换矩阵。用这个计算物体的相机空间位置或提供自定义 相机的位置。这个位置不是基于变化的。注意相机空间与 openGL 的约定相同:相机的前面 为 Z 轴负方向。这不同于 Unity 的约定,向前微 Z 轴争相。如果你改变该矩阵,相机的渲染 将不再基于它的 Transform 更新。知道调用 ResetWorldToCameraMatrix。  //从 offset 位置偏移相机的渲染  var offset = Vector3 (0,1,0);  function LateUpdate () {  //构建一个沿着 Z 轴偏移与镜像的矩阵。因为相机已经为 Z 轴镜像,并用于其余部分  var camoffset = Vector3 (‐offset.x, ‐offset.y, offset.z);  var m = Matrix4x4.TRS (camoffset, Quaternion.identity, Vector3 (1,1,‐1));  //重载 worldToCameraMatrix 为偏移镜像变换矩阵  camera.worldToCameraMatrix = m * transform.worldToLocalMatrix;  }  函数  ◆  function CopyFrom (other : Camera) : void  描述:使该相机的设置于其他相机相同。这将从 er 相机拷贝到所有相机变量(视野, 清楚标记,裁剪蒙版)。这也将使相机的变换与 other 相机相同,相机的层也与 other 相机 相同。在做自定义渲染效果的时候,这可以用来设置一台具有与其他相机设置完全相同的 相机。例如在使用 RenderWithShader 时。  ◆  function Render : void  描述:手动渲染相机。这个将使用相机的清除标记,目标纹理和所有其他设置。相机 将发送 OnPreCull,OnPreRender 和 OnPostRender 到任何附加的脚本上,并渲染任何最后的 图像滤镜。这个用来精确的控制渲染次序,为了使用这个特性,创建一个相机并禁用它。 然后在它上面调用 Render。参见:RenderWithShader。  ◆  function RenderToCubemap (cubemap : Cubemap, faceMask : int = 63) : bool  描述:从这个相机渲染到一个立方贴图。这个是非常有用的。可以再编辑器中烘焙场 景的静态立方贴图。参考下面的想到实例。相机的位置,清除标志和裁剪面距离将被使用 来渲染到立方贴图表面。faceMask 是一个比特域,标示哪个立方贴图面应该被渲染。每个 位对应于一个面。比特数是 CubemapFace 枚举的整型值。默认的所有六个立方贴图面都将     被渲染(默认值 63 最低的 6 位是打开的)。如果渲染失败,这个函数将返回 false。某些显 卡不支持这个函数。参见:Cubemap assets,Reflective shaders。  //从给定的点渲染场景到以静态立方贴图放置这个脚本到工程的 Editor 文件夹中,然后 用一个 Reflective shader 来使用立方贴图  class RenderCubemapWizard extends ScriptableWizard{  var renderFromPosition : Transform;  var cubemap : Cubemap;  function OnWizardUpdate () {  helpString = "Select transform to render from and cubemap to render into";  isValid = (renderFromPosition != null) && (cubemap != null);  }  function OnWizardCreate () {  //为渲染创建临时相机  var go = new GameObject( "CubemapCamera", Camera );//放置到物体上  go.transform.position = renderFromPosition.position;  go.transform.rotation = Quaternion.identity;  //渲染到立方贴图  go.camera.RenderToCubemap( cubemap );  //销毁临时相机  DestroyImmediate( go );  }  @MenuItem("GameObject/Render into Cubemap")  static function RenderCubemap () {  ScriptableWizard.DisplayWizard(  "Render cubemap", RenderCubemapWizard, "Render!");  }  }  ◆  function RenderToCubemap (cubemap : R enderTexture, faceMask : int = 63) : bool  描述:从这个相机渲染到一个立方贴图。用于实时反射到立方贴图渲染纹理,也是非 常耗时的,尤其是所有六个立方贴图面在每一帧中都被渲染。相机的位置,清楚标志和裁 剪面距离将被使用来渲染到立方贴图表面。faceMask 是一  个比特域,标示哪个立方贴图面应该被渲染。每个位对应于一个面。比特数是 CubemapFace 枚举的整型值。默认的所有六个正方贴图面都将被渲染(默认值 63 的最低 6 位是打开的)。如果渲染失败该函数会返回 false。某些显卡不支持该函数。参加: RenderTexture.isCubemap, Reflective shaders。  //将该脚本附加到使用了 Reflective shader 的物体上实时反射立方贴图  script ExecuteInEditMode  var cubemapSize = 128;  var oneFacePerFrame = false;  private var cam : Camera;  private var rtex : RenderTexture;  function Start () {  //启动时渲染所有 6 个面  UpdateCubemap( 63 );      }  function LateUpdate () {  if (oneFacePerFrame) {  var faceToRender = Time.frameCount % 6;  var faceMask = 1 << faceToRender;  UpdateCubemap (faceMask);  }   else {  UpdateCubemap (63); //所有 6 个面  }  }  function UpdateCubemap (faceMask : int) {  if (!cam) {  var go = new GameObject ("CubemapCamera", Camera);  go.hideFlags = HideFlags.HideAndDontSave;  go.transform.position = transform.position;  go.transform.rotation = Quaternion.identity;  cam = go.camera;  cam.farClipPlane = 100; //不渲染较远的部分  cam.enabled = false;  }  if (!rtex) {   rtex = new RenderTexture (cubemapSize, cubemapSize, 16);  rtex.isPowerOfTwo = true;  rtex.isCubemap = true;  rtex.hideFlags = HideFlags.HideAndDontSave;  renderer.sharedMaterial.SetTexture ("_Cube", rtex);  }  cam.transform.position = transform.position;  cam.RenderToCubemap (rtex, faceMask);  }  function OnDisable () {  DestroyImmediate (cam);  DestroyImmediate (rtex);  }  ◆  function RenderWithShader (shader : Shader, replacementTag : string) : void  描述:用 shader 替换渲染相机。参考 Rendering with Replaced Shaders 获取细节。此函 数将渲染相机。这将使相机的的清除标记、目标纹理和所有其他设置。这个相机不会发送 OnPreCull, OnPreRender  或者  OnPostRender 到已附加的脚本上。  图像滤镜   也不会被渲染。该函数可以用于特效,例如渲染整个场景屏幕空间缓冲,热效果等。 为了使用该特性,创建一个相机并禁用它。然后在它上面调用 RenderWithShader。参见: Rendering with Replaced Shaders, SetReplacementShader, Render。  ◆  function ResetAspect () : void      描述:返回猖狂比为屏幕的长宽比。调用这个结束 aspect 的效果。  camera.ResetAspect();  ◆  function ResetProjectionMatrix () : void  描述:让投影反映正常的相机参数。调用这个结束 projectionMatrix 的效果。  camera.ResetProjectionMatrix();  ◆  function ResetReplacementShader () : void  描述:从相机上移除 shader 替换。调用这个结束 SetReplacementShader 效果。  ◆  function ResetWorldToCameraMatrix () : void  描述:在场景中让渲染位置反映相机位置。调用这个结束 worldToCameraMatrix 的效果。  camera.ResetWorldToCameraMatrix();  ◆  function ScreenPointToRay (position : Vector3) : Ray  描述:返回从相机出发,穿过屏幕点的一个射线。产生的射线是在世界空间中,从相 机的近裁剪面开始并穿过屏幕 position(x,y)像素坐标(position.z 被忽略)。屏幕空间以像素 定义。屏幕的左下为(0,0);右上是(pixelWidth,pixelHeight)。  //在屏幕视图中绘制一条线,穿过一个到屏幕左下角 200 像素的点  function Update () {  var ray = camera.ScreenPointToRay (Vector3(200,200,0));  Debug.DrawRay (ray.origin, ray.direction * 10, Color.yellow);  }  ◆  function ScreenToViewportPoint (position : Vector3) : Vector3  描述:从屏幕空间到视口空间变换 position。屏幕空间以像素定义。屏幕的左下为(0,0); 右上是(pixelWidth,pixelHeight)。z 的位置是以世界单位衡量的刀相机的距离。视口空间是归 一化的并相对于相机的。相机的左下为(0,0);右上是(1,1)。z 的位置是以世界单位衡量的刀 相机的距离。  ◆  function ScreenToWorldPoint (position : Vector3) : Vector3  描述:从屏幕空间到世界空间变换 position。屏幕空间以像素定义。屏幕的左下为(0,0); 右上是(pixelWidth,pixelHeight)。z 的位置是以世界单位衡量的到相机的距离。  //在所选相机的近裁剪面上绘制一个黄色的球,在离左下 100 像素的位置  function OnDrawGizmosSelected () {  var p = camera.ScreenToWorldPoint (Vector3 (100,100,camera.nearClipPlane));  Gizmos.color = Color.yellow;  Gizmos.DrawSphere (p, 0.1);  }  ◆  function SetReplacementShader (shader : Shader, replacementTag : string) : void  描述:使相机用 shader 替换来渲染。参考 Rendering with Replaced Shaders。调用该函 数后,相机将使用替换的 shader 来渲染它的视图。调用 ResetReplacementShader 来重置为 普通渲染。参见:Rendering  with  Replaced  Shaders,  ResetReplacementShader,  RenderWithShader。  ◆  function ViewportPointToRay (position : Vector3) : Ray  描述:返回从相机出发穿过视点的一个射线。产生的射线是在世界空间中,从相机的 近裁剪面开始并穿过视口 position(x,y)坐标(position.z 被忽略)。视口坐标是归一化的并相 对于相机的。相机的左下为(0,0);右上为(1,1)。  //打印相机直接看到的物体名称  function Update () {      //获取穿过屏幕中心的射线  var ray = camera.ViewportPointToRay (Vector3(0.5,0.5,0));  //投射  var hit : RaycastHit;  if (Physics.Raycast (ray, hit)) {  print ("I'm looking at " + hit.transform.name);  }   else {  print ("I'm looking at nothing!");  }  }  ◆  function ViewportToScreenPoint (position : Vector3) : Vector3  描述:从视口空间到屏幕空间变换 position。视口空间是归一化的并相对于相机的。相 机的左下为(0,0);右上为(1,1)。z 的位置是以世界单位衡量的刀相机的距离。屏幕空间以像 素定义。屏幕左下为(0,0;右上为(pixelWidth,pixelHeight)。z 的位置是以世界单位衡量的到 相机的距离。  ◆  function ViewportToWorldPoint (position : Vector3) : Vector3  描述:从视口空间到屏幕空间变换 position。视口空间是归一化的并相对于相机的。相 机的左下为(0,0);右上为(1,1)。z 的位置是以世界单位衡量的刀相机的距离。屏幕空间以像 素定义。屏幕左下为(0,0;右上为(pixelWidth,pixelHeight)。z 的位置是以世界单位衡量的到 相机的距离。  //在进裁剪面的右上角,针对在场景视图中选中的相机绘制一个黄色的球  function OnDrawGizmosSelected () {  var p = camera.ViewportToWorldPoint (Vector3 (1,1, camera.nearClipPlane));  Gizmos.color = Color.yellow;  Gizmos.DrawSphere (p, 0.1);  }  ◆  function WorldToScreenPoint (position : Vector3) : Vector3  描述:从世界空间到屏幕空间变换 position。屏幕空间以像素定义。屏幕的左下为(0,0; 右上为(pixelWidth,pixelHeight)。z 的位置是   以世界单位衡量的刀相机的距离。  var target : Transform;  function Update () {  var screenPos = camera.WorldToScreenPoint (target.position);  print ("target is " + screenPos.x + " pixels from the left");  }  ◆  function WorldToViewportPoint (position : Vector3) : Vector3  描述:从世界空间到视口空间变换 position。视口空间是归一化的并相对于相机的。相 机的左下为(0,0);右上为(1,1)。z 的位置是以世界单位衡量的到相机的距离。  //找出 target 在屏幕的左边还是右边  var target : Transform;  function Update () {  var viewPos = camera.WorldToViewportPoint (target.position);  //视口坐标范围从 0 到 1      if( viewPos.x > 0.5 )  print ("target is on the right side!");  else  print ("target is on the left side!");  }  消息传递  ◆  function OnPostRender () : void  描述:OnPostRender 在相机渲染场景之后调用。这个消息被发送到所有附加在相机上 的脚本。  ◆  function OnPreCull () : void  描述:OnPreCull 在相机开始裁剪场景之前调用。OnPreCull 仅仅在这个过程之间被调用。 这个消息被发送到所有附加在相机上的脚本。如果你想改变相机的视觉参数(例如, fieldOfView 或者仅仅是变换),就在这里做这个。场景物体的可见性将给予相机的参数在 OnPreCull 之后确定。  ◆  function OnPreRender () : void  描述:OnPreCull 在相机开始渲染场景之前调用。这个消息被发送到所有附加在相机上 的脚本。注意如果你在这里改变了相机的视野参数(例如 fieldOfView), 它们将只影响下一 帧。用 OnPreCull 代替。  ◆  function OnRenderImage (source : RenderTexture, destination : RenderTexture) : void  描述:OnRenderImage 在所有渲染完成后被调用,来渲染图片的后记处理效果(仅限 UnityPro)。该函数允许使用给予 shader 的过滤器来处理最后的图片。进入的图片是 source 渲染纹理。结果是 destination 渲染纹理。当多个图片过滤器附加在相机上时,它们序列化 的处理图片,将第一个过滤器的目标作为下一个过滤器的源。  该消息被发送到所有附加在相机上的脚本。参见:UnityPro 中的 image effects。  ◆  function OnRenderObject (queueIndex : int) : void  描述:该函数被用来渲染你自己的物体,使用 Graphics.DrawMeshNow 或者其他函数。 queueIndex 指定用来渲染物体的 render queue。可以使用 RenderBeforeQueues 属性来指定 你想绘制这个物体到哪个渲染队列。  ◆  function OnWillRenderObject () : void  描述:如果物体可见,每个相机都会调用 OnWillRenderObject。该函数在裁剪过程中被 调用。可用该函数创建具有依赖性的渲染纹理。只有在被渲染的物体可见时,才更新该渲 染纹理。例如,水组件就使用了这个。Camera.current 将被设置为要渲染这个物体的相机。  类变量  ◆  stat ic var allCameras : Camera[]  描述:返回场景中所有启用的相机。  var count = Camera.allCameras.length;  print ("We've got " + count + " cameras");  ◆  static var current : Camera  描述:当前用于渲染的相机,只用于低级的渲染控制(只读)。多数时候你会使用 Camera.main。只有在执行下面时间的时候使用该函数:MonoBehaviour.OnRenderImage,  MonoBehaviour.OnPreRender, MonoBehaviour.OnPostRender。  ◆  static var main : Camera  描述:第一个启用的被标记为“MainCamera”的相机(只读)。如果场景中没有这个相 机返回 null。      继承的成员  继承的变量   enable  启用则 Behaviour 被更新,不启用则不更新  transform  附加到该 GameObject 的 Transform(没有返回 null)  rigidbody 附加到该 GameObject 的 Rigidbody(没有返回 null)  camera  附加到该 GameObject 的 Camera(没有返回 null)  light 附加到该 GameObject 的 Light(没有返回 null)  animation  附加到该 GameObject 的 Animation(没有返回 null)  constantForce 附加到该 GameObject 的 ConstantForce(没有返回 null)  renderer 附加到该 GameObject 的 Renderer(没有返回 null)  audio  附加到该 GameObject 的 Audio(没有返回 null)  guiText  附加到该 GameObject 的 GuiText(没有返回 null)  networkView 附加到该 GameObject 的 NetworkView(没有返回 null)  guiTexture  附加到该 GameObject 的 GuiTexture(没有返回 null)  collider  附加到该 GameObject 的 Collider(没有返回 null)  hingeJoint  附加到该 GameObject 的 HingeJoint(没有返回 null)  particleEmitter  附加到该 GameObject 的 ParticleEmitter(没有返回 null)  gameObject  该组件所附加的游戏物体。组件总是会附加到游戏物体上  tag  该游戏物体的标签。  name  对象的名称  hideFlags 该物体是否被隐藏,保存在场景中或被用户修改  继承的函数   GetComponent  如果游戏附体上附加了一个,则返回 type 类组件,没有则返回 null  GetComponentInChildren  如果该组件位于 GameObject 或任何其子物体上,返回 type 类组件,使用深度优先搜索  GetComponentsInChildren  如果这些组件位于 GameObject 或任何它的子物体上,返回 type 类组件。  GetComponents  返回 GameObject 上所有 type 类的组件  CompareTag  该游戏物体被是否被标签为 tag?  SendMessageUpwards  在该游戏物体的每个 MonoBehaviour 和该行为的父对象上调用 名为 methodName 的方法  SendMessage 在该游戏物体的每个 MonoBehaviour 上调用 methodName 方法  BroadcastMessage 在这个游戏物体或其任何子物体上的每个 MonoBehaviour 上调用 methodName  GetInstanceID 返回该物体的实例 id  继承的类函数   operator bool 这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体、组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代理。  FindObjectsOfType 返回所有类型为 type 的激活物体。  FindObjectOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator!=  比较两个物体是否不同。      DontDestroyOnLoad  加载新场景时确保目标物体不被自动销毁。  ConstantForce  类,继承自 Behaviour。一个不间断的力。这是一个小的物理工具类,用来将一个连续 的力应用到一个物体上。Rigidbody.AddForce 只在一帧中应用力道 Rigidbody,因此你不得 不持续调用这个函数。  领以方面 ConstantForce 将在每一帧中应用这个力,知道改变这个力或例举为一个新的 值。参见 Rigidbody。  变量  ◆  var force : Vector3  描述:这个力在每帧中应用到刚体。  //在世界坐标系中向上移动刚体。  constantForce.force = Vector3.up * 10;  ◆  var relativeForce : Vector3  描述:力‐相对于刚体坐标系统‐在每帧中应用。  //向前移动刚体。  constantForce.relativeForce = Vector3.forward * 10;  ◆  var relativeTorque : Vector3  描述:力矩‐相对于刚体坐标系统‐在每帧中应用。  //绕着其 X 轴旋转该物体。  constantForce.relativeTorque = Ve ctor3.right * 2;  ◆  var torque : Vector3  描述:这个力矩在每帧中应用到刚体。  //绕着世界的 Y 轴旋转该物体。  constantForce.torque = Vector3.up * 2;  继承的成员  继承的变量   enable  启用则 Behaviour 被更新,不启用则不更新  transform  附加到该 GameObject 的 Transform(没有返回 null)  rigidbody 附加到该 GameObject 的 Rigidbody(没有返回 null)  camera  附加到该 GameObject 的 Camera(没有返回 null)  light 附加到该 GameObject 的 Light(没有返回 null)  animation  附加到该 GameObject 的 Animation(没有返回 null)  constantForce 附加到该 GameObject 的 ConstantForce(没有返回 null)  renderer 附加到该 GameObject 的 Renderer(没有返回 null)  audio  附加到该 GameObject 的 Audio(没有返回 null)  guiText  附加到该 GameObject 的 GuiText(没有返回 null)  networkView 附加到该 GameObject 的 NetworkView(没有返回 null)  guiTexture  附加到该 GameObject 的 GuiTexture(没有返回 null)  collider  附加到该 GameObject 的 Collider(没有返回 null)  hingeJoint  附加到该 GameObject 的 HingeJoint(没有返回 null)  particleEmitter  附加到该 GameObject 的 ParticleEmitter(没有返回 null)  gameObject  该组件所附加的游戏物体。组件总是会附加到游戏物体上  tag  该游戏物体的标签。  name  对象的名称      hideFlags 该物体是否被隐藏,保存在场景中或被用户修改  继承的函数   GetComponent  如果游戏附体上附加了一个,则返回 type 类组件,没有则返回 null  GetComponentInChildren  如果该组件位于 GameObject 或任何其子物体上,返回 type 类组件,使用深度优先搜索  GetComponentsInChildren  如果这些组件位于 GameObject 或任何它的子物体上,返回 type 类组件。  GetComponents  返回 GameObject 上所有 type 类的组件  CompareTag  该游戏物体被是否被标签为 tag?  SendMessageUpwards  在该游戏物体的每个 MonoBehaviour 和该行为的父对象上调用 名为 methodName 的方法  SendMessage 在该游戏物体的每个 MonoBehaviour 上调用 methodName 方法  BroadcastMessage 在这个游戏物体或其任何子物体上的每个 MonoBehaviour 上调用 methodName  GetInstanceID 返回该物体的实例 id  继承的类函数   operator bool 这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体、组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代理。  FindObjectsOfType 返回所有类型为 type 的激活物体。  FindObjectOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator!=  比较两个物体是否不同。  DontDestroyOnLoad  加载新场景时确保目标物体不被自动销毁。  GUIElement  类,继承自 Behaviour。用于显示在 GUI 上的图片和文本字符串的基类。这个类处理所 有 GUI 元素的基本功能。  函数  ◆  function GetScreenRect (camera : Camera = null) : Rect  描述:在屏幕坐标返回 GUIElement 的包围矩阵。如果没有 camera 被指定,一个填充 整个游戏窗口的相机将被使用。  function Start () {  var r = guiTexture.GetScreenRect ();  print ("This gui element is %d pixel wide.",r.width);  var r = guiT ext.GetScreenRect();  print ("This gui element is %d pixel wide.",r.width);  }  ◆  function HitTest (screenPosition : Vector3, camera : Camera = null) : bool  描述:屏幕上的点在是否在元素内部?如果 screenPositon 包含在这个 GUIElement 内部 时返回真,screenPosition 以屏幕坐标指定,例如由 Input.mousePosition 属性返回的值。如 果没有 camera 被指定,一个填充整个游戏窗口的相机将被使用。注意,如果位置在元素内 部,true 将被返回。即使游戏物体属于 Ignore Raycast 层(通常鼠标事件不会发送到 Ignore  Raycast 物体)。参见 GUILayer.HitTest。      if (guiTexture.HitTest (Vector3 (360, 450, 0.)))  print ("This gui texture covers pixel 360, 450");  if (guiText.HitTest (Vector3(360, 450, 0.)))  print ("This gui texture covers pixel 360, 450");  继承的成员  继承的变量   enable  启用则 Behaviour 被更新,不启用则不更新  transform  附加到该 GameObject 的 Transform(没有返回 null)  rigidbody 附加到该 GameObject 的 Rigidbody(没有返回 null)  camera  附加到该 GameObject 的 Camera(没有返回 null)  light 附加到该 GameObject 的 Light(没有返回 null)  animation  附加到该 GameObject 的 Animation(没有返回 null)  constantForce 附加到该 GameObject 的 ConstantForce(没有返回 null)  renderer 附加到该 GameObject 的 Renderer(没有返回 null)  audio  附加到该 GameObject 的 Audio(没有返回 null)  guiText  附加到该 GameObject 的 GuiText(没有返回 null)  networkView 附加到该 GameObject 的 NetworkView(没有返回 null)  guiTexture  附加到该 GameObject 的 GuiTexture(没有返回 null)  collider  附加到该 GameObject 的 Collider(没有返回 null)  hingeJoint  附加到该 GameObject 的 HingeJoint(没有返回 null)  particleEmitter  附加到该 GameObject 的 ParticleEmitter(没有返回 null)  gameObject  该组件所附加的游戏物体。组件总是会附加到游戏物体上  tag  该游戏物体的标签。  name  对象的名称  hideFlags 该物体是否被隐藏,保存在场景中或被用户修改  继承的函数   GetComponent  如果游戏附体上附加了一个,则返回 type 类组件,没有则返回 null  GetComponentInChildren  如果该组件位于 GameObject 或任何其子物体上,返回 type 类组件,使用深度优先搜索  GetComponentsInChildren  如果这些组件位于 GameObject 或任何它的子物体上,返回 type 类组件。  GetComponents  返回 GameObject 上所有 type 类的组件  CompareTag  该游戏物体被是否被标签为 tag?  SendMessageUpwards  在该游戏物体的每个 MonoBehaviour 和该行为的父对象上调用 名为 methodName 的方法  SendMessage 在该游戏物体的每个 MonoBehaviour 上调用 methodName 方法  BroadcastMessage 在这个游戏物体或其任何子物体上的每个 MonoBehaviour 上调用 methodName  GetInstanceID 返回该物体的实例 id  继承的类函数   operator bool 这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体、组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代理。      FindObjectsOfType 返回所有类型为 type 的激活物体。  FindObjectOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator!=  比较两个物体是否不同。  DontDestroyOnLoad  加载新场景时确保目标物体不被自动销毁。  GUIText  类,继承自 GUIElement。显示在一个 GUI 中的文本字符。  变量  ◆  var alignment : TextAlignment  描述:文本的对齐。  guiText.alignment = TextAlignment.Left;  ◆  var anchor : TextAnchor  描述:文本的锚点。  guiText.anchor = TextAnchor.MiddleCenter;  ◆  var font : Font  描述:用于文本的字体。  var font : Font;  guiText.font = font;  ◆  var lineSpaceing : float   描述:行间距倍数。这个可以使被定义在字体中行间距增加。  //双倍行间距  guiText.lineSpacing = 2.0;  ◆  var material : Material  描述:用于渲染的 Material。赋予一个新的材质来改变渲染处理。改变这个材质来改变 渲染的字体。如果赋值 null 到 material,将使用内置基本字体。  //改变这个材质显示绿色文本。  guiText.material.color = Color.green;  参见:font variable  ◆  var pixelOffset : Vector2  描述:文本的像素偏移。文本从它的原始位置偏移的量。  guiText.pixelOffset = Vector2 (10, 10);  ◆  var tabSize : float  描述:这个标签增加的宽度。  guiText.tabSize = 4.0;  ◆  var text : string  描述:需要显示的文本。  GUITexture  类,继承自 GUIElement。用于 2D GUI 的纹理图片。  变量  ◆  var color : Color  描述:GUI 纹理的颜色。  //改变纹理的颜色为绿色  guiTexture.color = Color.green;  ◆  var pixelInset : Rect      描述:pixellnset 用来调整尺寸和位置。为了使 GUI 纹理总是原始大小,设置 transform.localScale 为 Vector3.zero。  transform.position = Vector3.zero;  transform.localScale = Vector3.zero;  guiTexture.pixelInset = Rect (50, 50, 100, 100);  ◆  var texture : Texture  描述:用于绘制的纹理。  //将 someTexture 赋值给 guiTexture。  var someTexture : Texture2D;  guiTexture.texture = someTexture;   继承的成员  继承的变量   enable  启用则 Behaviour 被更新,不启用则不更新  transform  附加到该 GameObject 的 Transform(没有返回 null)  rigidbody 附加到该 GameObject 的 Rigidbody(没有返回 null)  camera  附加到该 GameObject 的 Camera(没有返回 null)  light 附加到该 GameObject 的 Light(没有返回 null)  animation  附加到该 GameObject 的 Animation(没有返回 null)  constantForce 附加到该 GameObject 的 ConstantForce(没有返回 null)  renderer 附加到该 GameObject 的 Renderer(没有返回 null)  audio  附加到该 GameObject 的 Audio(没有返回 null)  guiText  附加到该 GameObject 的 GuiText(没有返回 null)  networkView 附加到该 GameObject 的 NetworkView(没有返回 null)  guiTexture  附加到该 GameObject 的 GuiTexture(没有返回 null)  collider  附加到该 GameObject 的 Collider(没有返回 null)  hingeJoint  附加到该 GameObject 的 HingeJoint(没有返回 null)  particleEmitter  附加到该 GameObject 的 ParticleEmitter(没有返回 null)  gameObject  该组件所附加的游戏物体。组件总是会附加到游戏物体上  tag  该游戏物体的标签。  name  对象的名称  hideFlags 该物体是否被隐藏,保存在场景中或被用户修改  继承的函数   GetComponent  如果游戏附体上附加了一个,则返回 type 类组件,没有则返回 null  GetComponentInChildren  如果该组件位于 GameObject 或任何其子物体上,返回 type 类组件,使用深度优先搜索  GetComponentsInChildren  如果这些组件位于 GameObject 或任何它的子物体上,返回 type 类组件。  GetComponents  返回 GameObject 上所有 type 类的组件  CompareTag  该游戏物体被是否被标签为 tag?  SendMessageUpwards  在该游戏物体的每个 MonoBehaviour 和该行为的父对象上调用 名为 methodName 的方法  SendMessage 在该游戏物体的每个 MonoBehaviour 上调用 methodName 方法  BroadcastMessage 在这个游戏物体或其任何子物体上的每个 MonoBehaviour 上调用 methodName      GetInstanceID 返回该物体的实例 id  继承的类函数   operator bool 这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体、组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代理。  FindObjectsOfType 返回所有类型为 type 的激活物体。  FindObjectOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator!=  比较两个物体是否不同。  DontDestroyOnLoad  加载新场景时确保目标物体不被自动销毁。  GUILayer  类,继承自 Behaviour。  函数  ◆  function HitTest (screenPosition : Vector3) : GUIElement  描述:在屏幕的制定位置获取 GUI 元素。返回屏幕上指定点的 GUIElement。如果 screenPosition 在某个 GUIElement 内部,那个元素将被返回。如果这个位置没有在任何 GUI 元素内部,返回 null。输入 Ignore  Raycast 层的 GUI 元素将被忽略,就像它们不存在。 screenPosition 在屏幕坐标系下,就像由 Input.mousePosition 属性返回的值。参见: GUIElement.HitTest,Input.mousePositon。  继承的成员  继承的变量   enable  启用则 Behaviour 被更新,不启用则不更新  transform  附加到该 GameObject 的 Transform(没有返回 null)  rigidbody 附加到该 GameObject 的 Rigidbody(没有返回 null)  camera  附加到该 GameObject 的 Camera(没有返回 null)  light 附加到该 GameObject 的 Light(没有返回 null)  animation  附加到该 GameObject 的 Animation(没有返回 null)  constantForce 附加到该 GameObject 的 ConstantForce(没有返回 null)  renderer 附加到该 GameObject 的 Renderer(没有返回 null)  audio  附加到该 GameObject 的 Audio(没有返回 null)  guiText  附加到该 GameObject 的 GuiText(没有返回 null)  networkView 附加到该 GameObject 的 NetworkView(没有返回 null)  guiTexture  附加到该 GameObject 的 GuiTexture(没有返回 null)  collider  附加到该 GameObject 的 Collider(没有返回 null)  hingeJoint  附加到该 GameObject 的 HingeJoint(没有返回 null)  particleEmitter  附加到该 GameObject 的 ParticleEmitter(没有返回 null)  gameObject  该组件所附加的游戏物体。组件总是会附加到游戏物体上  tag  该游戏物体的标签。  name  对象的名称  hideFlags 该物体是否被隐藏,保存在场景中或被用户修改  继承的函数   GetComponent  如果游戏附体上附加了一个,则返回 type 类组件,没有则返回 null  GetComponentInChildren  如果该组件位于 GameObject 或任何其子物体上,返回 type     类组件,使用深度优先搜索  GetComponentsInChildren  如果这些组件位于 GameObject 或任何它的子物体上,返回 type 类组件。  GetComponents  返回 GameObject 上所有 type 类的组件  CompareTag  该游戏物体被是否被标签为 tag?  SendMessageUpwards  在该游戏物体的每个 MonoBehaviour 和该行为的父对象上调用 名为 methodName 的方法  SendMessage 在该游戏物体的每个 MonoBehaviour 上调用 methodName 方法  BroadcastMessage 在这个游戏物体或其任何子物体上的每个 MonoBehaviour 上调用 methodName  GetInstanceID 返回该物体的实例 id  继承的类函数   operator bool 这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体、组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代理。  FindObjectsOfType 返回所有类型为 type 的激活物体。  FindObjectOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator!=  比较两个物体是否不同。  DontDestroyOnLoad  加载新场景时确保目标物体不被自动销毁。  LensFlare  类,继承自 Behaviour。用于 Lensflare 组件的借口。这允许你在运行时改变镜头闪光的 亮度和颜色。  变量  ◆  var brightness : float  描述:闪光的强度。这个控制发光元素的尺寸和亮度。  参见:Lens flare component, flare assets。  ◆  var color : Color  描述:闪光的颜色。这控制闪光元素的颜色(那些启用了 use light color 的)。  参见:Lens flare component, flare assets。  ◆  var flare : Flare  描述:使用的 flare asset。  参见:Lens flare component, flare assets。  继承的成员  继承的变量   enable  启用则 Behaviour 被更新,不启用则不更新  transform  附加到该 GameObject 的 Transform(没有返回 null)  rigidbody 附加到该 GameObject 的 Rigidbody(没有返回 null)  camera  附加到该 GameObject 的 Camera(没有返回 null)  light 附加到该 GameObject 的 Light(没有返回 null)  animation  附加到该 GameObject 的 Animation(没有返回 null)  constantForce 附加到该 GameObject 的 ConstantForce(没有返回 null)  renderer 附加到该 GameObject 的 Renderer(没有返回 null)      audio  附加到该 GameObject 的 Audio(没有返回 null)  guiText  附加到该 GameObject 的 GuiText(没有返回 null)  networkView 附加到该 GameObject 的 NetworkView(没有返回 null)  guiTexture  附加到该 GameObject 的 GuiTexture(没有返回 null)  collider  附加到该 GameObject 的 Collider(没有返回 null)  hingeJoint  附加到该 GameObject 的 HingeJoint(没有返回 null)  particleEmitter  附加到该 GameObject 的 ParticleEmitter(没有返回 null)  gameObject  该组件所附加的游戏物体。组件总是会附加到游戏物体上  tag  该游戏物体的标签。  name  对象的名称  hideFlags 该物体是否被隐藏,保存在场景中或被用户修改  继承的函数   GetComponent  如果游戏附体上附加了一个,则返回 type 类组件,没有则返回 null  GetComponentInChildren  如果该组件位于 GameObject 或任何其子物体上,返回 type 类组件,使用深度优先搜索  GetComponentsInChildren  如果这些组件位于 GameObject 或任何它的子物体上,返回 type 类组件。  GetComponents  返回 GameObject 上所有 type 类的组件  CompareTag  该游戏物体被是否被标签为 tag?  SendMessageUpwards  在该游戏物体的每个 MonoBehaviour 和该行为的父对象上调用 名为 methodName 的方法  SendMessage 在该游戏物体的每个 MonoBehaviour 上调用 methodName 方法  BroadcastMessage 在这个游戏物体或其任何子物体上的每个 MonoBehaviour 上调用 methodName  GetInstanceID 返回该物体的实例 id  继承的类函数   operator bool 这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体、组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代理。  FindObjectsOfType 返回所有类型为 type 的激活物体。  FindObjectOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator!=  比较两个物体是否不同。  DontDestroyOnLoad  加载新场景时确保目标物体不被自动销毁。  Light  类,继承自 Behaviour。用 于 light components 的脚本接口。使用这个来控制 Unity 光源 的所有方面。这个属性完全与现实在监视面板中的值相同。通常光源都是在编辑器中创建, 但是有时候需要从脚本中创建。  function Start () {  //制作一个游戏物体  var lightGameObject = new GameObject ("The Light");  //添加光源组件  lightGameObject.AddComponent (Light);      //设置颜色和位置  lightGameObject.light.color = Color.blue;  //在添加光照组件后,设置位置(或任何变换组件)  lightGameObject.transform.position = Vector3 (0, 5, 0);  }  变量  ◆  var attenuate : bool  描述:光源是否随着距离衰减?对于 Directional 光源衰减总是关闭的。  //关闭光源衰减。  light.attenuate = false;  参见:Light component  ◆  var color : Color  描述:光源的颜色。为了修改光源的强度你需要改变光源颜色的亮度。光源总是增加 亮度,因此一个黑色的光源与没有光源相同。光源是否随着距离衰减?对于 Directional 光 源衰减总是关闭的。  //在 2 秒内使颜色变黑。  function Update () {  light.color ‐= Color.white / 2.0 * Time.deltaTime;  }  //在 2 个颜 色之间来回插值光源颜色。  var duration = 1.0;  var color0 = Color.red;  var color1 = Color.blue;  function Update () {  //设置光源颜色  var t = Mathf.PingPong (Time.time, duration) / duration;  light.color = Color.Lerp (color0, color1, t);  }  参见:Light component。  ◆  var cookie : Texture  描述:被盖光源投影的 cookie 纹理。如果 cookie 是一个立方体贴图,光源将变为一个 点光源。注意 cookie 只在像素光源下显示。  //在监视面板中公开一个纹理的引用  var newCookie : Te xture2D;  //赋 cookie  light.cookie = newCookie;  参见:Light component  ◆  var cullingMask : int  描述:这个用来选择性的照亮部分场景。如果 GameObject 的 layerMask 与光源的 cullingMask 进行 AND 操作后为 0.,那么这个游戏物体不能被这个光源照亮。参考 Layers 获 取更多信息。  //只照亮第一层中的物体(默认层)  light.cullingMask = 1 << 0;  参见:Light component      ◆  var flare : Flare  描述:为这个光源使用的 flare asset。  //在监视面板中公开一个闪光的引用  var newFlare : Flare;  //赋值闪光  light.flare = newFlare;  参见:Light component 和 flare asset。  ◆  var intensity : float  描述:光源的强度被光源的颜色乘。该值可以介于 0~8 之间。允许你创建明亮的灯光。  //随时间改变光照强度  var duration = 1.0;  function Update() {  //余弦理论  var phi = Time.time / duration * 2 * Mathf.PI;  //获取余弦,并将范围从‐1~1 变为 0~1  var amplitude = Mathf.Cos( phi ) * 0.5 + 0.5;  //设置光的颜色  light.intensity = amplitude;  }  ◆  var range : float  描述:光源的范围。  即使光源关闭了 attenuate,它还是只影响在它范围内的物体。  //在原始范围与原始范围一般处变换光照范围  var duration = 3.0;  private var originalRange : float;  originalRange = light.range;  function Update() {  var amplitude = Mathf.PingPong( Time.time, duration );  //将 0..持续 时间改为 0.5..1 范围  amplitude = amplitude / duration * 0.5 + 0.5;  //设置光照范围  light.range = originalRange * amplitude;  }  参见:Light component。  ◆  var renderMode : LightRenderMode  描述:如何渲染该光源?此处可以是 LightRenderMode.Auto ,  LightRenderMode.ForceVertex  或  LightRenderMode.ForcePixel。像素光渲染比较慢但是看起 来较好,尤其是对那些没有较高面数的几何体。一些效果(例如凹凸)只会在像素光照下 显示。  //使光源只以点光照模式渲染  light.renderMode = LightRenderMode.ForceVertex;  参见:Light component  ◆  var shadowConstantBias : float  描述:阴影偏移常量。      参见:shadows,shadowObjectSizeBias。  ◆  var shadowSizeBias : float  描述:阴影偏移常量。  参见:shadows,shadowConstantBias。  ◆  var shadows : LightShadows  描述:这个光源是否投射阴影?  //设置光源为投射硬阴影  light.shadows = LightShadows.Hard;  参见:LightShadows,  shadowStrength  property,  Renderer.castShadows,  Renderer.receiveShadows  ◆  var shadowStrength : float  描述:光源阴影的强度?  //使光源的阴影非常弱  light.shadowStrength = 0.3;  参见:shadows property, Renderer.castShadows, Renderer.receiveShadows。  ◆  var spotAngle : float  描述:光源的投射光角度。主要用于 Spot 光源。改变 Directional 光源的 c ookie 尺寸。 对 Point 光源没有影响。  //在”minAngle”与”maxAngle”之间随机改变投射角度  //每’interval’秒改变一次.  var interval=0.3;  var minAngle=10;  var maxAngle=90;  private var timeLeft:float;  teimleft=interval;  light.type=LightType.Spot;  function Update()  {    timeLeft=Time.deltaTime;  if(timeLeft<0.0){    //开始改变  timeLeft=interval;  light.spotAngle=Random Range(minAngle,maxAngle);  };  }  参见:Light component     var type:LightType  描述:光源的类型  可以是 LightType.Spot,LightType.Directional,LightType.Point.  //制作一个投射光源  Light.type=LightType.Spot;  参见:Light component  继承的成员  继承的变量      Enabled  启用 Behaviours 被更新,禁用 Behaviours 不被更新。  Transform 附加到这个 GameObject 的 Transform(如果没有为 null)。  Rigidbody 附加到这个 GameObject 的 Rigidbody(如果没有为 null)。  Camera  附加到这个 GameObject 的 Camera(如果没有为 null)。  Light  附加到这个 GameObject 的 Light(如果没有为 null)。  Animation 附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce 附加到这个 GameObject 的 ConstantForce(如果没有为 null)。  Renderer 附加到这个 GameObject 的 Renderer(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView 附加到这个 GameObject 的 NetworkView(如果没有为 null)。  Collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint 附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter   附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject 这个组件所附加的游戏物体。一个组件总是附加到一个游戏物体。  Tag   这个游戏的标签。  Name  对象的名称。  hideFlags 该物体是否被隐藏,保存在场景中或被用户修改?  继承的函数  GetComponet 返回 type 类型的组件,如果游戏物体上附加一个,如果没有返                        回 null。  GetComponentInchildren  返回 type 类型的组件,这个组件位于 GameObject 或者任 何它的子物体上,使用深度优先搜索。  GetComponentsInchildren  返回所有 type 类型的组件,这些组件位于 GameObject 或 者任何它的子物体上。  GetComponets 返回 Gameobject 所有 type 类型的组件。  CompareTag  这游戏物体被标签为 tag?  SendMessageUpwards   在这游戏物体的每个 MonoBehaviour 和该行为的组先上调 用名为 methodName 方法。  SendMessage 在这游戏物体的每个 MonoBehaviour 上调用名为  methodName 方法。  BoradcastMessage   在这个游戏物体或其任何子上的每个 MonoBehaviour 上调用 methodName 方法。  GetInstanceID            返回该物体的实例 id。  继承的类函数  Operator bool 这个物体存在吗?  Instatiate   克隆 original 物体并返回这个克隆。  Destroy   移除一个游戏物体,组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代替  FindObjectsOfType 返回所有类型为 type 的激活物体。  FindObjectOfType 返回第一个类型为 type 的激活物体。  Operator==  比较两个物体是否相同。  Operator!=  比较两个物体是否不相同。  DontDestroyOnLoad   加载新场景时确保物体 target 不被自动销毁。  MonoBehaviour      类,继承自 Behaviour  MonoBehaviour 是每个脚本所继承的基类。  每个使用 Javascript 的脚本自动地从 MonoBehaviour 继承。当使用 C#或 Boo 时你必须 显式从 MonoBehaviour 继承。  参见:手册中的 chapter on scripting.  函数  ◆function Cancellnvoke():void  描述:取消所有在这个 MonoBehaviour 上调用  //在 2 秒时开始  //一个 projectile 所在每 0.3 秒时运行  var projectile:Rigidbody;  InvokeRepeating(“LaunchProjectile”,2,0.3);  //当用户按下 ctrl 按钮时,  //取消重复调用  Function Update()  {    If(Input.GetButton(“Fire1”)){    Cancellnvoke();       }  }  Function LaunchProjectile(){    Instance=Instantiate(prtfab);  Instance.velocity=Random.insideUnitSphere*5;  }  ◆function Cancellvoke(methodName:string):void  描述:撤销该行为中名为 methodName 的所有调用。  //在 2 秒时 开始  //一个 projectile 将在每 0.3 秒时运行  var projectile :Rigidbady;  invokeRepeating(“LaunchProjectile”,2,0.3);  //当用户按下 crtl 按钮时  //取消重复调用  Function Update(){    If(Input.GetButton(Fire1)){    Cancellnvode(“LaunchProjectile”);    }  }  Function LanuchProjectile(){    instance=Instntiate(prefab);    instance.velocity=Random.insideUnitSphere*5;  }  ◆function Invoke(methodName:string,time:float):void  描述:在 time 秒调用 methodName 方法。      //在两秒时发射一个投射物  var  Projectile:rigidbady;  Invoke(“LaunchProjectile”,2);  Function LaunchProjectile(){    Instance=Instantiate(prefab);    Instance.velocity=Random.insideUnitSphere*5;  }  ◆function InvokeRepeating(methodName:string,time:float,repeatRate:float):void  描述:在 time 秒调用 methodName 方法。  第一次调用之后,每 repeatRate 秒重复调用这个函数  //在 2 秒时开始  //一个 Projectile 将在每 0.3 秒运行  var projectile:Rigidbody;  InvokeRepeating(“LaunchProjectile”,2,0.3);  Function LaunchProjectile(){    instance=Instantiate(prefab);    instance.velocity=Random.insideUnitSphere*5;  }  ◆function IsInvoking(methodName:string)  描述:是否有任何对 methodName 的调用在等待?  ◆function IsInvoking(methodName:string):bool  描述:是否有任何 MonoBehaviour 的调用在等待?  ◆Function StartCoroutine(routine:IEnumerator):Coroutine  描述:开始一个 coroutine  一个 coroutine 的执行可以任何位置使用 yield 语句暂停,当 coroutine 继续的时候 yield 返回值,当行为需要跨越多个帧的时候,Coroutines 是非常好的,当 Coroutines 几乎没有性 能负担。StartCoroutine 函数总是立即返回,然而你能够 yidle 结果,这个将等待直到 coroutine 执行完成。  当使用 javascript 时,没有必要使用 StartCorutine,编译器会为你做这件事。在写 C#代码 的时候你必须调用 StartCoroutine  //在这个例子中我们显示如何并行调用  //一个 coroutine 并继续执行这个函数。  //0 秒后,打印”Starting0.0”  //0 秒后,打印”Before WaitAndPrint Finishes0.0”  //2 秒后,打印”WaitAndPrint 2.0”  print(“Starting”+Time.time);  //WaitAndPrint 作为一个 coroutine 开始,并等待直到它完成  WaitAndPrint(2.0)  Print(“Before WaitAndPrint Finishes”+Time.time);  function WaitAndPrint(waitTime:float){    //暂停执行 waitTime 秒    Yield WaitForSeconds(waitTime);    Print(“WaitAndPrint”+Time.time);  //WaitAndPrint 作为一个 coroutine 开始,并等待直到它完成      Yield WaitAndPrint(2.0);  Print(“Done”+Time.time);  }  C#例子代码如下  //C#例子,在这个例子中我们显示如何并行调用  //一个 coroutine 并继续执行这个函数  void Start(){  //0 秒后,打印”Starting0.0”  //0 秒后,打印”Before WaitAndPrint Finishes0.0”  //2 秒后,print”waitAndPrint2.0”  Print(“Starting”+Time.time);  StartCoroutine(WaitAndPrint(2.0F));  Print(“Before WaitAndPrint Finishes”+Time.time);  }  IEnumerator WaitAndPrint(float waitTime){  //  暂停 waitTime 秒  Yield return new WaitForSeconds(waitTime);  Print(“WaitAndPrint”+Time);  }  //c#例子  //在这个例子中我们展示如何调用一个 coroutine 并等待直到它完成  IEnumerator Start(){  //0 秒后,打印”strating0.0”  //2 秒后,prints”Wa itAndPrint2.0”  //2 秒后,打印”Done 2.0”  Print(“Starting”+Time.time);  Yield return StartCoutine(WaitAndPrint(2.0f);  Print(“Done”+Time.time);  }  IEnumerator WaitAndPrint(float waitTime){  //暂停 waitTime 秒    Yield return new WaitForSeconds(waitTime);  Print(“WaitAndPrint”+Time.time);  }  ◆Function StartCoroutine(methodName: string, value: object=null): Coroutine  描述:开始为 methodName 的 Coroutine。  在大多数情况下,你要用 StartCoroutine 的变体。然而,使用一个字符串方法名的 StartCoroutine 允许 StopCoroutine 使用一个特定的方法名称。字符串级本的特定时它有较高 的运行时开销来开始 coroutine,并且你只能传递一个参数。  //在则合格例子中我们现实如何一个字符串名调用一个 coroutine 并停止它  Function Start(){  StartCoroutine(“DoSomething”,2.0);  Yield WaitForSeconds(1);  StopCoroutine(”DoSomething”);      }  Function DoSomething(someParameter: float){  While(true)  {  Print(”DoSomething Loop”);  Yield  }  }  ◆Function StopAllCoroutines(): void  描述:停止所有运行在这个行为上的 Coroutine。  //开始 coroutine  StartCoroutine(“DoSomething”);  //紧跟着取消 coroutine  Function DoSomething(){  While(true){  Yield;  }  }  StopAllCoroutines();  ◆Function StopCoroutine(methodName: string): void  描述:停止所有运行在这个行为上的名为 methodName 的 Coroutine。  请注意只使用一个字符串方法名的 StartCoroutine 才能使用 StopCoroutine 停止。  //在这个例子中我们显示如何使用一个字符串名调用一个 coroutine 并停止它  Function Start(){  StartCoroutine(“DoSomething”,2.0);  Yield WaitForSeconds(1);  StopCoroutine(”DoSomething”);  }  Function DoSomething(someParameter: float){  While(true)  {  Print(”DoSomething Loop”);  Yield  }   }  重载函数  ◆Function Awake(): void  描述:当脚本实例被加载时,Awake  被调用。  在游戏开始前,使用 Awake  来初始化任何变量或游戏状态。在脚本实例的生命期内 Awake  只被调用一次。Awake  在所有物体被初始化之后被调用,因此你可以安全地告诉其 他物体或使用如 GameObject.FindWithTag 来查询它们。每个游戏物体的 Awake  以随机的顺 序被调用。因此,你应该使用 Awake  来再脚本之间设置引用,并使用 Start 来传递消息。 Awake  总是在任何 Start 函数之前调用。这允许你调整脚本的初始化顺序。Awake  不能作 为一个 Coroutine      注意对于 C#哈 Boo 用户:使用 Awake  而不是构造函数来初始化,因为组件的序列化 状态在构造的时候还没有确定。Awake  只被调用一次,就像构造函数。  Private var target: GameObject;  Function Awake(){  Target=GameObject.FindWithTag(‘”Player”)  }  Awake 不能作为一个 coroutine。  ◆Function FixedUpdate (): void  描述:如果 MonoBehaviour 被启用,这个函数将以固定的帧率调用。  当处理 Rigidbody 是应该使用 FixedUpdate 而不是使用 Update。例如,当添加一个力到 刚体时,你必须在 FixedUpdate 内以固定的帧率应用而不是在 Update 内。  //应用一个向上的力到刚体  Function FixedUpdate(){  Rigidbody.AddForce(Vector3.up);  }  力伟到从上一次调用Update的消逝时间,使用Time.deltaTime,这个函数只在Behaviour 被启用时调用。重载这个函数,以便给你的组件提供功能。  ◆Function LateUpdate (): void  描述:如果该 Behaviour 被启用,LateUpdate 将在每帧中调用。  LateUpdate 在所有 Update 函数被调用后调用。这可用于调整脚本执行顺序。例如,一 个跟随相机应该总是在 LateUpdate 中实现,因为他跟踪 Update 中移动的物体。  //向前以 1 米/秒的速度移动物体  Function LateUpdate (){  transfor.Translate(0,0,Time.deltaTime*1);  }  为了得到从最后一个调用 LateUpdate 的消逝时间,使用 Time.deltaTime。如果该 Behaviour 被启用,该函数将在每帧中调用。重载这个函数,以便给你的组件提供功能。  ◆Function OnApplicationPause(pause: bool): void  描述:当玩家暂停时发送到所有游戏物体。  OnApplicationPause 可以是一个 coroutine,简单地在这个函数中使用 yield 语句。  ◆Function OnApplicationQuit(): void  描述:在应用退出之前发送到所有游戏物体。  在编辑器中当用户停止播放模式时这个被调用。在网页播放器中当 web 被关闭时这个 函数被调用。  ◆Function OnBecameInvisible(): void  描述:OnBecameInvisible 函数在这个渲染上的脚本。OnBecameVisible 和 OnBecameInvisible 可以用于只需要在需要在物体可见时才进行的计算。  //当它不可见时禁用这个行为  Finction OnBecameInvisible(){  Enabled=false;  }  OnBecameInvisible 可以是一个 coroutine,简单地在这个函数中使用 yield 语句。当在 编辑器中运行时,场景试图相机也会导致这个函数被调用。  ◆Function OnBecameVisible(): void      描述:OnBecameVisible 函数在这个渲染器对任何相机变得可见时被调用。  这个消息被发送到所有附加在渲染器上的脚本。OnBecameVisible 和 OnBecameInvisible 可以用于只需要在需要在物体可见时才进行的计算。  //当它不可见时禁用这个行为  Finction OnBecameVisible(){  Enabled=false;  }  OnBecameVisible 可以是一个 coroutine,简单地在这个函数中使用 yield 语句。当在编 辑器中运行时,场景试图相机也会导致这个函数被调用。  ◆Function OnCollisionEnter(collisionInfo: Collision): void  描述:  当这个碰撞器/刚体开始接触另一个刚体/碰撞器时 OnCollisionEnter 被调用。  相对于 OnTriggerEnter,OnCollosionEnter 传递 Collision 类而不是 Collider,Collision 类 包含接触点,碰撞速度等细细。如果在函数中不使用 CollisionInfo,省略 CollisionInfo 参数 以避免不西药的计算。注意如果碰撞器附加了一个非动力学刚体,也只发送碰撞事件。  Function OnCollisionEnter(collision: Collision){  //调试绘制所有的接触点和法线  For(var contact: ContactPoint in collision.oontacts){  Debug.DrawRay(contact.point, contact.normal, Color.white);  }  //如果碰撞物体有较大的冲击就播放声音  If(collision.relativeVelocity.magnitude>2)  Audio.Play();  }  OnCollisionEnter 可以是一个 coroutine,简单地在这个函数中使用 yield 语句。  ◆Function OnCollisionExit(collisionInfo: Collision): void  描述:当这个碰撞器/刚体开始接触另一个刚体/碰撞器时 OnCollisionEnter 被调用。  相对于 OnTriggerExit,OnCollosionExit 传递 Collision 类而不是 Collider.  Collision 类包含 接触点,碰撞速度等细细。如果在函数中不使用 CollisionInfo,省略 CollisionInfo 参数以避 免不西药的计算。注意如果碰撞器附加了一个非动力学刚体,也只发送碰撞事件。  Function OnCollisionExit(collision: Collision){  Print(“No longer in contact with”+collisionInfo.transform.name);  }  OnCollisionExit 可以是一个 coroutine,简单地在这个函数中使用 yield 语句。  ◆function OnCollisionStay(collisionInfo:collision):void  描述:对于每个与刚体碰撞器相触碰的碰撞器刚体,OnCollisionStay 将在每一帧中被调 用。  相对于 OnTriggerStay,OnCollisionStay  传递 Collision 类而不是 Collider.Collision 类包含接 触点,碰撞速度等细节。如果在函数中不使用 collisionInfo 省略 collisionInfo 参数以避免不 要必要的计算。注意如果碰撞器附加了一个非动力学刚体,也只发送碰撞事件。  function OnCollisionStay(CollisionInfo:Collision){    //调试绘制所有的接触点和法线    for  (var contact:ContactPoint in collision.contacts){    Debug.DrawRay(contact.point,contact.normal,Color.white);        }  }  OnCollisionStay 可以是一个 coroutine,也简单地在这个函数中使用 yield 语句  ◆function OnConnectedToServer():void  描述:当成功链接到服务器时在客户端调用这个函数。  function OnConnectedToServer(){  Debug.Log(“Connected to server”);  //发送到本地玩家名称到服务器  }  ◆function OnControllerColliderHit(Hit:controllerColliderHit):void  描述:在移动的时候,控制器碰到一个碰撞器时,OnControllerColliderHit 被调用。  这可以用来在角色碰到物体时推开物体。  //这个脚本推开所有角色碰到物体时推开物体  Var pushPower=2.0;  Function OnControllerColliderHit(hit: OnControllerColliderHit){    Var body:Rigidbody=hit.collider.attachedRigidboby;    //无刚体    If(body==null||body.isKinematic)    return;  //不推开我们身后的物体  If(hit.moveDirection.y<‐0.3)    Return;  //从移动方向计算推的方向  //只推开物体到旁边而不是上下  Var pushDir=Vector3(hit.moveDirection.x,0,hit.moveDirection.z)  //如果知道角色移动有多快  //然后你就可以用它乘以推动速度  //使用推力  Body.velocity=pushDir*pushPower;  }  ◆function OnDisable():void  描述:当这个行为禁用或不活动时这个函数被调用。  当物体被销毁的时候这个函数也会被调用并可以用于任何清理的代码。当脚本在编译 结束后被加载时,OnDisable 将被调用,然后脚本加载完成后 OnEnable 被调用。  Function OnDisable(){  Print("scrip was remove”);  }  OnDisabe  不能作为一个 coroutine.  ◆function OnDisconnectedFromServer(mode:NetworkDisconnection):void  描述:当链接挂失或服务器断开时在客户端用这个函数。  Function OnDisconnectedFromServer(info.NetworkDisconnection){    Debug.Log(“Disconnected from server”+info);  }  ◆function OnDrawGizmos():void        描述:如果你想绘制可被点的 Gizmos 时,实现 OnDrawGizmos,    这允许你在场景中快速选择重要的物体。  //在物体的位置上绘制光源灯泡  function OnDrawGizmos(){    Gizmos.DrawIcon(transform.position,”light Gizmo.tiff”);  }    ◆function OnDrawGizmosSelected():void  描述:如果你想在物体被选择时绘制 gizmos,实现这个 OnDrawGizmosSelected。  Gizmos 只在物体被选择的时候绘制。Gizmos 不能点选。这可以设置更容易,例如  一个爆炸脚本可以绘制一个球显示爆炸半径。  var explosionRadius=5.0;  function OnDrawGizmosSelected(){  //选中的时候显示爆炸半径    Gizmos.color=Color.white;    Gizmos.DrawSphere(transfom.position,explosinRadius);  }  ◆function OnEnable():void  描述:当物体启用或激活时这个函数被调用  function OnEnbale(){    print(“script was enabled”);  }  ◆function OnFailedToconnect(error:NetworkConnectionError);void  描述:当链接因为某些原因失败时在客户端上调用这个函数。  失败的原因作为 NetworkConnectionError 枚举传入。  function OnFailedToconnect (info:NetworkConnectionError){    Debug.Log(“Could not c onnect to server”+error);  ◆function OnFailedToConnectToMasterServer (error:NetworkConnectionError):void  描述:当链接到主服务器出现问题时在客户端或服务器调用这个函数。  错误的原因作为 NetworkConnectionError 枚举传入  function OnFailedToConnectToMasterServer(info:NetworkConnectionError){    Debug.Log(“Could not connect to master server”+info);  }  ◆function OnGUI():void  描述:OnGUI 被调用来渲染并处理 GUI 事件。  如果 Monobehaviour 的启用属性被设置为假,OnGUI()将不会被调用。  Function OnGUI(){    If(GUI>Button(Rect(10,10,150,100),”I am a button”)){    Print(“You clicked the button”)    }  }  参考 GUI Scrtipting Guide  获取更多信息。  ◆function ONJointBreak(breakForce:float):void  描述:当附加到相同游戏物体上的关节被断开时调用      当一个力大于这个关节的 breakForce 时,关节将被断开,当关节断开时,OnJointBreak 将被调用,应用到关节的断开力将被传入,OnJointBreak 之后这个关节将自动从游戏物体移 除。参见:Joint.breakForce  ◆function OnLevelWasLoaded(level:int):void  描述:这个函数在一个新的关卡被加载之后被调用  //level 是被加载的关卡的索引。使用菜单项 File>Build  Settings 来查看索引引用的是那 个场景,参见:Application.LoadLevel  //当关卡 13 被加载的关卡的索引”Woohoo”  Function OnLevelWasLoaded(level:int){  If(level==13){    Print(“Woohoo”);  }  }  OnLevelWasLoaded  可以是一个 coroutine,简单地在这个函数中使用 yield 语句。  ◆function OnMouseDown():void  描述:当用户在 GUIElement 或 Collider 上按下鼠标按钮时 OnMouseDown 被调用  这个事件被发送到所有附加在 Collider 或 GUIElement 的脚本上。  //加载名为“someLevel”的关卡  //来响应用户单击  Function OnMouseDown(){    Application.LoadLevel(“SomeLevel”);  }  这个函数不会在属于 Ignore Raycast 的层上调用。  OnMouseDown 可以是一个 coroutine,简单地在这个函数中使用 yield 语句。这个事件 被发送到的有附加在 Collider 或 GUIElement 的脚本上。  ◆function OnMouseDrag():void  描述:当用户在 GUIElement 或 Collider 上点击并按住鼠标时 OnMouseDrag 被调用。  当鼠标被按下时 OnMouseDrag 将在每帧中被调用。  //按住鼠标时使用材质颜色变暗  function OnMouseDrag(){    renderer.material.color==Color.white*Time.deltaTime;  }  这个函数不会在属于 Ignore Ray 的层被调用  。  OnMouseDrag 可以是一个 coroutine,简单地在这个函数中使用 yield 语句。这个事件 被发送到所有附加在 collider 或 GUIElement 的脚本上。  ◆Function OnMouseEnter():void  描述:当鼠标进入 GUIElement 或 collider 时,OnMouseEnter 被调用。  //附加这个脚本到网格  //使用当鼠标经过这个网格时使它变红  Function OnMouseEnter(){    Renderer.material.color=Color.red;  }  这个函数不会在属于 Ignore Raycast 的层上调用。  OnMouseEnter 可以是一个 coroutine,简单地在这个函数中使用 yield 语句。这个事件     被发送所有附加在 Collider 或 GUIElement 的脚本上。  ◆function OnMouseExit():void  描述:当鼠标不再位于 GUIElement 或 Collider 上时,OnMouseExit 被调用。  OnMouseExit 与 OnMouseEnter 相反  //当鼠标在网格时  //渐变材质的红色组件为零  Function OnMouseExit(){    Rnderer.material.color=Color.white;  }  这个函数不会在属于 Ignore Raycast 的层上调用。  OnMouseExit 可以是一个 coroutine,简单地在这个函数中使用 yield 语句。这个事件被 发送到所有附加在 Collider 或 GUIElement 上脚本上。  ◆function OnMouseOver();void  描述:当鼠标在 GUIElement 或 Collider 上时,OnMouseOver 被调用。  //当鼠标在网格上时  //渐变材质的红色组件为零  function OnMouseOver(){    renderer.material.color==0.1*Time.deltaTime;  }  这个函数不会在属于 Ignore Raycast 的层上调用。  OnMouseOver 可以是一个 coroutine,简单地在这个函数中使用 yield 语句,这个事件 被发送到所有附加在 Collider 或 GUIElement 的脚本上。  ◆function OnMouseUP():void  描述:当用户已经松开鼠标按钮时 OnMouseUp 调用。  在 GUIElement 或 Collider 上松开鼠标时 OnMouseUp 被调用。  //加载名为”someLevel”的关卡  //来响应用户单击  function OnMouseUp(){    Application.LoadLevel(“SomeLevel”);  }  这个函数不会在属于 Ignore Raycast 的层上调用。  OnMouseUp 可以是一个 coroution,简单地在这个函数 yield 语句。这个事件被发送到所 有附加在 Collider 或 GUIElement 的脚本上。  ◆function OnNetworkInstantiate(info:NetworkMessageInfo):void  描述:当一个物体使用 Network.Instantiate 进行网络初始化在该物体上调用这个函数。  这个对于禁用或启用一个已经初始化的物体组件来说是非常有用的,它们的行为取决 与它们是在本地还是在远端。    注意:在 NetworkMessageInfo 里的 networkView 属性不能在 OnNetworkInstantiate 里使用。  function OnNetworkInstantiate(info:NetworkMessageInfo){    Debug.Log(“New object instantiated by”+info.sender);  }  ◆function onParticleCollision(other:GameObject):void  描述:当一个粒子碰到一个碰撞器时 OnParticleCollision 被调用。      这个可以在游戏物体被粒子击中时应用伤害到它的上面,这个消息被发送到所有附加 到  WorldParticleCollider  的脚本上和被击中的 Collider 上,这个消息只有当你在  WorldParticleCollider 检视面板中启用了 sendCollisionMessage 时才会被发送。  //应用力到所有被粒子击中的刚体上  function OnParticleCollison(other:GameObject){    var body=other.rigidbody;    if(body){    var direction=other.transform.position+transform.position;    direction=direction.normalized;    body.AddForce(direction*5);    }  }  OnParticleCollision 可以是一个 coroutine,简单地在这个函数中使用 yield 语句。  ◆function OnPlayConnected(player:NetworkPlayer):void  描述:当一个新玩家成功连接在服务器上调用这个函数。  private var playerCount:int=int=0;  function OnPlayerConnect(player.NetworkPlayer){  Debug.log(“Player”+playerCount+++”connected from”+player.ip.Address+”:”+player.port);  //用玩家的信息构建一个数据结构  }  ◆function OnPlayerDisconnected(player:NetworkPlayer):void  描述:当玩家从服务器断开时在服务器上调用这个函数。  function OnPlayerDisconnected (player:NetworkPlayer){    Debug.Log(“Clean up after player”+player);    Network.RemoveRPcs(player);    Network.DestroyPlayerObject(player);  }  ◆function OnpostRender():void  描述:OnPostRender 在相机渲染场景之后调用。  只有脚本被附加到相机上时才会调用这个函数。OnPostRender 可以是一个 coroutine,  简单地在这个函数中使用 yield 语句。  OnPostRender 在相机渲染完所有它的物体之后被调用。如果你想在所有相机和 GUI 被 渲染之后做一些事情,使用 WaitForEndFrame coroutine  参见:OnPreRender,WaitForEndOfFrame  //当附加到机时,将消除  //相机纹理的 alpha 通道为纯白色  //如果你有一个渲染纹理并想将它显示在 GUI 上时可以使用这个函数  Parvate var mat:Material;  function OnPostRender(){    //创建一个只渲染白色到 alpha 通道的着色器    If(mat)    {    Mat=new Material(“Shader Hidden SetAlpha”+)        “SubShader{“+”pass{”+”ZTest  Always  Cull  off  Zwrite  Off”+”ColorMaskA”+”Color(1,1,1,1)”+”}”+”}”  +”}”);  }  }  //  用上述着色器绘制一个全屏四边形  GL.PushMatrix();  GL.LoadOrtho();  for(var i=0;i胶囊的高度沿着 x 轴。1‐>胶囊的高度沿着 y 轴。2‐>胶囊的高度沿着 z 轴。  //使胶囊的高度沿着 x 轴  collider.direction=0;  ◆var height:float  描述:胶囊的高度,基于物体的局部空间  该胶囊的高度将随着变换的缩放而缩放。注意 height 为包含两端两个半球的实际高度。  collider.height=5;  ◆var radius:float  描述:球的半径,基于物体的局部空间。  该胶囊的半径随着变换的缩放而缩放。  collider.radius=1;  继承的成员      继承的变量  attachedRigidbody   该碰撞器所附加的刚体。  isTrigger  该碰撞器是一个触发器?  material  该碰撞器使用的材质。  sharedMaterial   该碰撞器的共享物体材质。  bounds  碰撞器在世界空间中包围盘。  Transform 附加到这个 GameObject 的 Transform(如果没有为 null)。  Rigidbody 附加到这个 GameObject 的 Rigidbody(如果没有为 null)。  Camera  附加到这个 GameObject 的 Camera(如果没有为 null)。  Light  附加到这个 GameObject 的 Light(如果没有为 null)。  Animation 附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce 附加到这个 GameObject 的 ConstantForce(如果没有为 null)。  Renderer 附加到这个 GameObject 的 Renderer(如果没有为 null)。  audio  附加到这个 GameObject 的 AudioSourec(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView 附加到这个 GameObject 的 NetworkView(如果没有为 null)。  Collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint 附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter   附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject 这个组件所附加的游戏物体。一个组件总是附加到一个游戏物体。  Tag   这个游戏的标签。  Name  对象的名称。  hideFlags 该物体是否被隐藏,保存在场景中或被用户修改?      继承的函数      ClosestPointOnBounds  附加碰撞器到包围盒最近的点。    Raycast  投射一个 Ray,它忽略所有的碰撞器除了这个。  GetComponet   返回 type 类型的组件,如果游戏物体上附加一个,如果没有返回 null。  GetComponentInchildren  返回 type 类型的组件,这个组件位于 GameObject 或者任 何它的子物体上,使用深度优先搜索。  GetComponentsInchildren  返回所有 type 类型的组件,这些组件位于 GameObject 或 者任何它的子物体上。  GetComponets 返回 Gameobject 所有 type 类型的组件。     CompareTag  这游戏物体被标签为 tag?  SendMessageUpwards   在这游戏物体的每个 MonoBehaviour 和该行为的组先上调 用名为 methodName 方法。  SendMessage 在这游戏物体的每个 MonoBehaviour 上调用名为  methodName 方法。  BoradcastMessage   在这个游戏物体或其任何子上的每个 MonoBehaviour 上调用 methodName 方法。  GetInstanceID            返回该物体的实例 id。    继承的消息传递        OnTriggerEnter 当这个 Collider other 进入 trigger 进 OnTriggerEnter 被调用。    OnTriggerExit   当这个 Collider other 停止触碰 trigger 时 OnTriggerExit 被调用。    OnTriggerStay   对于每个 Collider  other,当它触碰到 trigger 时,OnTriggerStay 会    在每一帧中都被调用。    OnCollisionEnter  当这个碰撞器/刚体开始触碰另一个刚体/碰撞器时    OnCollisionEnter 被调用。  OnCollisionExit  当这个碰撞器/刚体停止触碰另一个刚体/碰撞器时 OnCollisionExit  被调用    OnCollisionStay  对于每个与刚体/碰撞器相触碰的碰撞器/刚体 OnCollisionStay 将在每    一帧中被调用。  继承的类函数  Operator bool 这个物体存在吗?  Instatiate   克隆 original 物体并返回这个克隆。  Destroy   移除一个游戏物体,组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代替  FindObjectsOfType 返回所有类型为 type 的激活物体。  FindObjectOfType 返回第一个类型为 type 的激活物体。  Operator==  比较两个物体是否相同。  Operator!=  比较两个物体是否不相同。  DontDestroyOnLoad   加载新场景时确保物体 target 不被自动销毁。    CharactController    类,继承自 Collider    CharacterController 允许你很容易地做受到碰撞制约的移动,而无需处理刚体。    CharacterController 不会受力的影响,并且只有在调用  Move 函数时才会移动,然 后这个控制器将实现移动,但是会受到碰撞的制约。    参见:Character Controller component 和 Character animation examples  变量  ◆var center:Vector3  描述:角色胶囊相对于变换的位置的中心。    //向上移动胶囊的中心    var Controller. CharacterController=GetComponent(CharacterController);  controller.center=Vector3(0,1,0);  ◆var collisionFlags:CollisionFlags  描述:在最后一次调用 CharacterController.Move 时,胶囊的哪个部分与环境发生了碰 撞。  function Update(){    var controller:CharacterController=GetComponent(CharacterController);    if((c ontroller collisionFlags&collisionFlags.Above)!=0)    print(“touched the celling”);  }  ◆var detectCollisions:bool      描述:其他刚体或角色控制器应该与这个角色控制器碰撞吗(默认总是启用的)?    这个方法不会影响角色移动时的碰撞检测。它控制角色和其他物体之间的碰撞。 例如,  一个箱子可以阻止控制器的运动,但是作为模拟的一部分这个箱子可以进入控制器。 这可以用于临时禁用角色控制器。例如,你也许想装载角色到汽车上并禁用碰撞直到再次 退出汽车。注意这只影响其他没有与碰撞的物体。detectCollisions 不是可序列化的。也就说, 它不会显示要检视面板中并且当在场景中实例化或保存这个控制器时,它将不被保存。    GetComponent(CharacterController).detectCollisions=false;  ◆var height:float  描述:这个胶囊的高度  //设置控制器的高度为 2.0  var controller:CharacterController=GetComponent(CharacterController);  controller.height=2.0;  ◆var isGrounded:bool  描述:CharacterController 上一次移动的时候是否接触地面?  function Update(){    var controller.CharacterController=GetComponent(CharacterController);    if(controller.isGronded){    print(“We are grounded”)    }  }  ◆var radius:float  描述:角色胶囊的半径  //这只控制器的半径为 0.3  var controller:CharacterController=GetComponent(CharacterController);  controller.radius=0.3;  ◆var slopLimit:float  描述:角色控制器的斜度限制  //设置控制器的斜度限制为 45  var controller:CharacterController=GetComponent(CharacterController);  controller.slopLimit=45.0;  ◆var  stepOffset:float  描述:角色控制器的步高,以米为单位。  //这只控制器的步高为 2.0  var controller:CharacterController=GetComponent(CharacterController);  controller.stepOffset=2.0;  ◆var velocity:Vector3  描述:角色的当前速度  这允许你知道角色实际的行走有多快,例如当它碰到墙时这个值为零向量  function Update(){    var controller:CharacterController=GetComponent(CharacterController);    var horizontalVelocity=controller.velocity;    horizontalVelocity=0;    //x‐z 平面上的速率,忽略其他任何速率        var horizontalSpeed= horizontalVelocity.y;    //整体速率    var overallSpeed=controller.velocity.magnitude;  }  函数  ◆function Move(motion:Vector3):CollisionFlags  描述:一个更复杂的移动函数,可以使用绝对移动增量。  试图由 motion 来移动控制器,这个运动只受制于碰撞,它将沿着碰撞器滑动,  collisionFlags 为移动期间所发生的碰撞总和。这个函数不使用任何重力。  //这个脚本基于方向键向前  //和两边移动角色控制器  //按下空格后它也会跳跃  //确保这个与角色控制器附加在同一个游戏物体上  var speed = 6.0;  var jumpSpeed = 8.0;  var gravity = 20.0;  private var moveDirection = Vector3.zero;  function FixedUpdate() {  var controller : CharacterController = GetComponent(CharacterController);  if (controller.isGrounded) {  //我们在地面上,因此重计算  //直接沿轴方向移动  moveDirection = Vector3(Input.GetAxis("Horizontal"), 0,  Input.GetAxis("Vertical"));  moveDirection = transform.TransformDirection(moveDirection);  moveDirection *= speed;  if (Input.GetButton ("Jump")) {  moveDirection.y = jumpSpeed;  }  }  //  使用重力  moveDirection.y ‐= gravity * Time.deltaTime;  //  移动控制器  controller.Move(moveDirection * Time.deltaTime);  }  ◆function SimpleMove(speed:Vector3);bool  描述:以 speed 移动角色  沿着 y 轴的速度将忽略。速度单位 m/s,重力被自动应用。返回角色是否在地面  上。  var speed = 3.0;  var rotate Speed = 3.0;  function Update (){    var controller : CharacterController = GetComponent(CharacterController);    // Rotate around y ‐ axis        transform.Rotate(0, Input.GetAxis ("Horizontal") * rotateSpeed, 0);    // Move forward / backward    var forward = transform.TransformDirection(Vector3.forward);    var curSpeed = speed * Input.GetAxis ("Vertical");    controller.SimpleMove(forward * curSpeed);  }    @script RequireComponent(CharacterController)  消息传递  ◆function OnControllerColliderHit(hit:ControllerColliderHit):void  描述:在移动的时候,控制器碰到一个碰撞器时,OnControllerColliderHit 被调用。  这可以用来在角色碰到物体时推开物体。  //这个脚本推开所有碰到的刚体  var pushPower = 2.0;  function OnControllerColliderHit (hit : ControllerColliderHit){    var body : Rig idbody = hit.collider.attachedRigidbody;    //  无刚体    if (body == null || body.isKinematic)    return;    //  不推开我们身后的物体    if (hit.moveDirection.y < ‐0.3)     return;    //从移动方向计算推的方向    //  只推开物体到旁边而不是上下    var pushDir = Vector3 (hit.moveDirection.x, 0, hit.moveDirection.z);    //如果知道角色移动有多快    //然后你就可以用它乘以推动速度    //使用推力    body.velocity = pushDir * pushPower;  }  继承的成员  继承的变量  attachedRigidbody   该碰撞器所附加的刚体。  isTrigger  该碰撞器是一个触发器?  material  该碰撞器使用的材质。  sharedMaterial   该碰撞器的共享物体材质。  bounds  碰撞器在世界空间中包围盘。  Transform 附加到这个 GameObject 的 Transform(如果没有为 null)。  Rigidbody 附加到这个 GameObject 的 Rigidbody(如果没有为 null)。  Camera  附加到这个 GameObject 的 Camera(如果没有为 null)。     Light  附加到这个 GameObject 的 Light(如果没有为 null)。  Animation 附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce 附加到这个 GameObject 的 ConstantForce(如果没有为 null)。  Renderer 附加到这个 GameObject 的 Renderer(如果没有为 null)。      audio  附加到这个 GameObject 的 AudioSourec(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView 附加到这个 GameObject 的 NetworkView(如果没有为 null)。  Collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint 附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter   附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject 这个组件所附加的游戏物体。一个组件总是附加到一个游戏物体。  Tag   这个游戏的标签。  Name  对象的名称。  hideFlags 该物体是否被隐藏,保存在场景中或被用户修改?    继承的函数    ClosestPointOnBounds  附加碰撞器到包围盒最近的点。    Raycast  投射一个 Ray,它忽略所有的碰撞器除了这个。  GetComponet   返回 type 类型的组件,如果游戏物体上附加一个,如果没有返回 null。  GetComponentInchildren  返回 type 类型的组件,这个组件位于 GameObject 或者任 何它的子物体上,使用深度优先搜索。  GetComponentsInchildren  返回所有 type 类型的组件,这些组件位于 GameObject 或 者任何它的子物体上。  GetComponets 返回 Gameobject 所有 type 类型的组件。  CompareTag  这游戏物体被标签为 tag?  SendMessageUpwards   在这游戏物体的每个 MonoBehaviour 和该行为的组先上调 用名为 methodName 方法。  SendMessage 在这游戏物体的每个 MonoBehaviour 上调用名为  methodName 方法。  BoradcastMessage   在这个游戏物体或其任何子上的每个 MonoBehaviour 上调用 methodName 方法。  GetInstanceID            返回该物体的实例 id。    继承的消息传递    OnTriggerEnter  当这个 Collider other 进入 trigger 进 OnTriggerEnter 被调用。    OnTriggerExit   当这个 Collider other 停止触碰 trigger 时 OnTriggerExit 被调用。    OnTriggerStay   对于每个 Collider  other,当它触碰到 trigger 时,OnTriggerStay 会    在每一帧中都被调用。    OnCollisionEnter  当这个碰撞器/刚体开始触碰另一个刚体/碰撞器时    OnCollisionEnter 被调用。  OnCollisionExit  当这个碰撞器/刚体停止触碰另一个刚体/碰撞器时 OnCollisionExit  被调用.  OnCollisionStay 对于每个与刚体/碰撞器相触碰的碰撞器/刚体  OnCollisionStay 将在每一帧中被调用。  继承的类函数  Operator bool 这个物体存在吗?  Instatiate   克隆 original 物体并返回这个克隆。  Destroy   移除一个游戏物体,组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代替      FindObjectsOfType 返回所有类型为 type 的激活物体。  FindObjectOfType 返回第一个类型为 type 的激活物体。  Operator==  比较两个物体是否相同。  Operator!=  比较两个物体是否不相同。  DontDestroyOnLoad   加载新场景时确保物体 target 不被自动销毁。  MeshCollider    类,继承自 Collider    网格碰撞器允许人在网格和几何体之间进行碰撞检测。    参见:BosCollider,CapsuleCollider,PhysicMaterial,Rigidbody    变量  ◆var convex:bool  描述:为这个网格将使用一个凸碰撞器。  凸网格可以与其他凸碰撞器和非凸网格碰撞。因此凸网格碰撞器适用于刚体,如果你 真的需要比几何碰撞器更多的详细的碰撞信息,可以使用这个。  ◆var shareMesh:mesh  描述:用于碰撞检测的网格物体。  ◆var smoothSphereCollision:bool  描述:为球形碰撞使用插值法线而不是平面多边形法线。  这可以让球体在平面上的滚动更加更滑。缺点是在从陡峭的角度滚落时,它的行为非 常奇怪,显得有拉动某个方向的的球体。  继承的成员  继承的变量  attachedRigidbody   该碰撞器所附加的刚体。  isTrigger  该碰撞器是一个触发器?  material  该碰撞器使用的材质。  sharedMaterial   该碰撞器的共享物体材质。  bounds  碰撞器在世界空间中包围盘。  Transform 附加到这个 GameObject 的 Transform(如果没有为 null)。  Rigidbody 附加到这个 GameObject 的 Rigidbody(如果没有为 null)。  Camera  附加到这个 GameObject 的 Camera(如果没有为 null)。  Light  附加到这个 GameObject 的 Light(如果没有为 null)。  Animation 附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce 附加到这个 GameObject 的 ConstantForce(如果没有为 null)。  Renderer 附加到这个 GameObject 的 Renderer(如果没有为 null)。  audio  附加到这个 GameObject 的 AudioSourec(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView 附加到这个 GameObject 的 NetworkView(如果没有为 null)。  Collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint 附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter   附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject 这个组件所附加的游戏物体。一个组件总是附加到一个游戏物体。  Tag   这个游戏的标签。  Name  对象的名称。      hideFlags 该物体是否被隐藏,保存在场景中或被用户修改?    继承的函数    ClosestPointOnBounds  附加碰撞器到包围盒最近的点。    Raycast  投射一个 Ray,它忽略所有的碰撞器除了这个。  GetComponet   返回 type 类型的组件,如果游戏物体上附加一个,如果没有返回 null。  GetComponentInchildren  返回 type 类型的组件,这个组件位于 GameObject 或者任 何它的子物体上,使用深度优先搜索。  GetComponentsInchildren  返回所有 type 类型的组件,这些组件位于 GameObject 或 者任何它的子物体上。  GetComponets 返回 Gameobject 所有 type 类型的组件。  CompareTag  这游戏物体被标签为 tag?  SendMessageUpwards   在这游戏物体的每个 MonoBehaviour 和该行为的组先上调 用名为 methodName 方法。  SendMessage 在这游戏物体的每个 MonoBehaviour 上调用名为  methodName 方法。  BoradcastMessage   在这个游戏物体或其任何子上的每个 MonoBehaviour 上调用 methodName 方法。  GetInstanceID            返回该物体的实例 id。    继承的消息传递    OnTriggerEnter   当这个 Collider other 进入 trigg er 进 OnTriggerEnter 被调用。    OnTriggerExit 当这个 Collider other 停止触碰 trigger 时 OnTriggerExit 被调用。  OnTriggerStay 对于每个 Collider other,当它触碰到 trigger 时,    会在每一帧中都被调用。  OnCollisionEnter  当这个碰撞器/刚体开始触碰另一个刚体/碰撞器时    OnCollisionEnter 被调用。  OnCollisionExit  当这个碰撞器/刚体停止触碰另一个刚体/碰撞器时 OnCollisionExit  被调用.  OnCollisionStay  对于每个与刚体/碰撞器相触碰的碰撞器/刚体    OnCollisionStay 将在每一帧中被调用。  继承的类函数  Operator bool 这个物体存在吗?  Instatiate   克隆 original 物体并返回这个克隆。  Destroy   移除一个游戏物体,组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代替  FindObjectsOfType 返回所有类型为 type 的激活物体。  FindObjectOfType 返回第一个类型为 type 的激活物体。  Operator==  比较两个物体是否相同。  Operator!=  比较两个物体是否不相同。  DontDestroyOnLoad   加载新场景时确保物体 target 不被自动销毁。  RaycastCollider    类,继承自 Collider    基于碰撞的一个线。    Raycast 碰撞器主要用于模型汽车,气垫船和船因为它们提供更精确的碰撞检测。 然而,对于轮式交通工具,建议使用 WheelCollider。        一个 Raycast 碰撞器总是沿着本地 y 轴向下投射一个射线。Raycast 碰撞器在与设 置为具有弹性的物理材质组全时是最有用的。  变量  ◆var center:Vector3  描述:胶囊的中心,基于物体的局部空间。  //重置中心到变换的位置  collider.center=Vector3.zero;  ◆var length:float    描述:本地空间的射线的长度,射线将发射  从 center 沿着变换的负 y 轴,length 将随着变换的缩放而缩放  collider.length=2;  继承的成员  继承的变量  attachedRigidbody   该碰撞器所附加的刚体。  isTrigger  该碰撞器是一个触发器?  material  该碰撞器使用的材质。  sharedMaterial   该碰撞器的共享物体材质。  bounds  碰撞器在世界空间中包围盘。  Transform 附加到这个 GameObject 的 Transform(如果没有为 null)。  Light  附加到这个 GameObject 的 Light(如果没有为 null)。  Animation 附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce 附加到这个 GameObject 的 ConstantForce(如果没有为 null)。  Renderer 附加到这个 GameObject 的 Renderer(如果没有为 null)。  audio  附加到这个 GameObject 的 AudioSourec(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView 附加到这个 GameObject 的 NetworkView(如果没有为 null)。  Collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint 附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter   附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject 这个组件所附加的游戏物体。一个组件总是附加到一个游戏物体。  Tag   这个游戏的标签。  Name  对象的名称。  hideFlags 该物体是否被隐藏,保存在场景中或被用户修改?    继承的函数    ClosestPointOnBounds  附加碰撞器到包围盒最近的点。    Raycast  投射一个 Ray,它忽略所有的碰撞器除了这个。  GetComponet   返回 type 类型的组件,如果游戏物体上附加一个,如果没有返回 null。  GetComponentInchildren  返回 type 类型的组件,这个组件位于 GameObject 或者任 何它的子物体上,使用深度优先搜索。  GetComponentsInchildren  返回所有 type 类型的组件,这些组件位于 GameObject 或 者任何它的子物体上。  GetComponets 返回 Gameobject 所有 type 类型的组件。  CompareTag  这游戏物体被标签为 tag?  SendMessageUpwards   在这游戏物体的每个 MonoBehaviour 和该行为的组先上调     用名为 methodName 方法。  SendMessage 在这游戏物体的每个 MonoBehaviour 上调用名为  methodName 方法。  BoradcastMessage   在这个游戏物体或其任何子上的每个 MonoBehaviour 上调用 methodName 方法。  GetInstanceID            返回该物体的实例 id。    继承的消息传递    OnTriggerEnter  当这个 Collider other 进入 trigger 进 OnTriggerEnter 被调用。    OnTriggerExit   当这个 Collider other 停止触碰 trigger 时 OnTriggerExit 被调用。  OnTriggerStay   对于每个 Collider other,当它触碰到 trigger 时,OnTriggerStay 会    在每一帧中都被调用。    OnCollisionEnter  当这个碰撞器/刚体开始触碰另一个刚体/碰撞器时    OnCollisionEnter 被调用。  OnCollisionExit  当这个碰撞器/刚体停止触碰另一个刚体/碰撞器时 OnCollisionExit  被调用.  OnCollisionStay 对于每个与刚体/碰撞器相触碰的碰撞器/刚体  OnCollisionStay 将在每一帧中被调用。  继承的类函数  Operator bool 这个物体存在吗?  Instatiate   克隆 original 物体并返回这个克隆。  Destroy   移除一个游戏物体,组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代替  FindObjectsOfType 返回所有类型为 type 的激活物体。  FindObjectOfType 返回第一个类型为 type 的激活物体。  Operator==  比较两个物体是否相同。  Operator!=  比较两个物体是否不相同。  DontDestroyOnLoad   加载新场景时确保物体 target 不被自动销毁。  SphereCollider    类继承自 Collider    一个球形的几何碰撞器    参见:BoxCollider,CapsuleCollider,Physic Material,Rigidbody  变量  ◆var center:Vector3  描述:球的中心,基于物体的局部空间。  //重置中心到变换的位置  Collider.center=Vector3.zero;  ◆var radius:float  描述:球的半径,基于物体的局部空间。  球体随着变换的缩放而缩放  collider.radius=10;  继承的成员  继承的变量  attachedRigidbody   该碰撞器所附加的刚体。  isTrigger  该碰撞器是一个触发器?      material  该碰撞器使用的材质。  sharedMaterial   该碰撞器的共享物体材质。  Transform 附加到这个 GameObject 的 Transform(如果没有为 null)。  Light  附加到这个 GameObject 的 Light(如果没有为 null)。  Animation 附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce 附加到这个 GameObject 的 ConstantForce(如果没有为 null)。  Renderer 附加到这个 GameObject 的 Renderer(如果没有为 null)。  audio  附加到这个 GameObject 的 AudioSourec(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView 附加到这个 GameObject 的 NetworkView(如果没有为 null)。  Collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint 附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter   附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject 这个组件所附加的游戏物体。一个组件总是附加到一个游戏物体。  Tag   这个游戏的标签。  Name  对象的名称。  hideFlags 该物体是否被隐藏,保存在场景中或被用户修改?    继承的函数    ClosestPointOnBounds  附加碰撞器到包围盒最近的点。    Raycast  投射一个 Ray,它忽略所有的碰撞器除了这个。  GetComponet   返回 type 类型的组件,如果游戏物体上附加一个,如果没有返回 null。  GetComponentInchildren  返回 type 类型的组件,这个组件位于 GameObject 或者任 何它的子物体上,使用深度优先搜索。  GetComponentsInchildren  返回所有 type 类型的组件,这些组件位于 GameObject 或 者任何它的子物体上。  GetComponets 返回 Gameobject 所有 type 类型的组件。  CompareTag  这游戏物体被标签为 tag?  SendMessageUpwards   在这游戏物体的每个 MonoBehaviour 和该行为的组先上调 用名为 methodName 方法。  SendMessage 在这游戏物体的每个 MonoBehaviour 上调用名为  methodName 方法。  BoradcastMessage   在这个游戏物体或其任何子上的每个 MonoBehaviour 上调用 methodName 方法。  GetInstanceID            返回该物体的实例 id。    继承的消息传递    OnTriggerEnter  当这个 Collider other 进入 trigger 进 OnTriggerEnter 被调用。    OnTriggerExit   当这个 Collider other 停止触碰 trigger 时 OnTriggerExit 被调用。    OnTriggerStay   对于每个 Collider  other,当它触碰到 trigger 时,OnTriggerStay 会  在每一帧中都被调用。    OnCollisionEnter  当这个碰撞器/刚体开始触碰另一个刚体/碰撞器时    OnCollisionEnter 被调用。  OnCollisionExit  当这个碰撞器/刚体停止触碰另一个刚体/碰撞器时 OnCollisionExit  被调用.      OnCollisionStay 对于每个与刚体/碰撞器相触碰的碰撞器/刚体  OnCollisionStay 将在每一帧中被调用。  继承的类函数  Operator bool 这个物体存在吗?  Instatiate   克隆 original 物体并返回这个克隆。  Destroy   移除一个游戏物体,组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代替  FindObjectsOfType 返回所有类型为 type 的激活物体。  FindObjectOfType 返回第一个类型为 type 的激活物体。  Operator==  比较两个物体是否相同。  Operator!=  比较两个物体是否不相同。  DontDestroyOnLoad   加载新场景时确保物体 target 不被自动销毁。  TerrainCollider  类,继承自 Collider  基于高度图的碰撞器。  变量  ◆var terrainData:TerrainData  描述:存储高度图的地形  继承的成员  继承的变量  attachedRigidbody   该碰撞器所附加的刚体。  isTrigger  该碰撞器是一个触发器?  material  该碰撞器使用的材质。  sharedMaterial   该碰撞器的共享物体材质。  bounds  碰撞器在世界空间中包围盘。  Transform 附加到这个 GameObject 的 Transform(如果没有为 null)。  Light  附加到这个 GameObject 的 Light(如果没有为 null)。  Animation 附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce 附加到这个 GameObject 的 ConstantForce(如果没有为 null)。  Renderer 附加到这个 GameObject 的 Renderer(如果没有为 null)。  audio  附加到这个 GameObject 的 AudioSourec(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView 附加到这个 GameObject 的 NetworkView(如果没有为 null)。  Collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint 附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter   附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject 这个组件所附加的游戏物体。一个组件总是附加到一个游戏物体。  Tag   这个游戏的标签。  Name  对象的名称。  hideFlags 该物体是否被隐藏,保存在场景中或被用户修改?    继承的函数    ClosestPointOnBounds  附加碰撞器到包围盒最近的点。    Raycast  投射一个 Ray,它忽略所有的碰撞器除了这个。  GetComponet   返回 type 类型的组件,如果游戏物体上附加一个,如果没有返回 null。      GetComponentInchildren  返回 type 类型的组件,这个组件位于 GameObject 或者任 何它的子物体上,使用深度优先搜索。  GetComponentsInchildren  返回所有 type 类型的组件,这些组件位于 GameObject 或 者任何它的子物体上。  GetComponets 返回 Gameobject 所有 type 类型的组件。  CompareTag  这游戏物体被标签为 tag?  SendMessageUpwards   在这游戏物体的每个 MonoBehaviour 和该行为的组先上调 用名为 methodName 方法。  SendMessage 在这游戏物体的每个 MonoBehaviour 上调用名为  methodName 方法。  BoradcastMessage   在这个游戏物体或其任何子上的每个 MonoBehaviour 上调用 methodName 方法。  GetInstanceID            返回该物体的实例 id。    继承的消息传递    OnTriggerEnter  当这个 Collider other 进入 trigger 进 OnTriggerEnter 被调用。    OnTriggerExit   当这个 Collider other 停止触碰 trigger 时 OnTriggerExit 被调用。    OnTriggerStay   对于每个 Collider  other,当它触碰到 trigger 时,OnTriggerStay 会    在每一帧中都被调用。    OnCollisionEnter  当这个碰撞器/刚体开始触碰另一个刚体/碰撞器时    OnCollisionEnter 被调用。  OnCollisionExit  当这个碰撞器/刚体停止触碰另一个刚体/碰撞器时 OnCollisionExit  被调用.  OnCollisionStay 对于每个与刚体/碰撞器相触碰的碰撞器/刚体  OnCollisionStay 将在每一帧中被调用。    继承的类函数  Operator bool 这个物体存在吗?  Instatiate   克隆 original 物体并返回这个克隆。  Destroy   移除一个游戏物体,组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代替  FindObjectsOfType 返回所有类型为 type 的激活物体。  FindObjectOfType 返回第一个类型为 type 的激活物体。  Operator==  比较两个物体是否相同。  Operator!=  比较两个物体是否不相同。  DontDestroyOnLoad   加载新场景时确保物体 target 不被自动销毁。  WheelCollider    类,继承自 Collider    用于车轮的特殊碰撞器。    车轮的碰撞器用来模拟车轮。它的功能类似与 RaycastCollider,但是还有车轮物理 和基于轮胎摩擦力模拟的滑动。在大多数情况下 WheelCollider 是更精确的也更容易使用的。    车轮的碰撞检测是通过从 center 沿着局部 Y 轴向下投射一个射线进行的。车轮有 一个 radius 并可以通过 suspensionDistance 向下扩展。    车轮使用 motoTorque,brakeTorque 和 steerAngle 属性控制。        车轮碰撞器使用不同于物理引擎的一个基于滑动的摩擦力模型来计算摩擦力。这 允许更加真实的行为。而且使车轮忽略标准的 PhysiMaterial 设置。通过改变车轮所碰到的  rorwardFriction 和  sidewaysFriction 来模拟不同的路面材质。参见:GetGroundHit 和  WheelFrictionCurve。  变量  ◆var brakeTorque:float  描述:制动的力矩。必须为正  //制动车轮  collider.brakeTorque=1000;  ◆var center:vector3  描述:车轮的中心,基于物体的局部空间。  //重置中心到变换的位置  collider.center=Vector.zero;  ◆var forwardFriction:WheelFrictionCurve  描述;在轮胎所指向上的摩擦力属性  ◆var isGrounded:bool  描述:表示当前车轮是否与什么东西发生碰撞(只读)  ◆var mass:float  描述:车轮的质量必须比 0 大  collider.mass=1;  ◆var motorTorque:float  描述:车轮上的动力力矩。正负根据方向而定。  为了模拟制动,不要使用负的动力力矩,而使用 brakeTorque  //向前旋转的车轮  collider.motorTorque=10;  ◆var radius:float  描述:本地空间的车轮的半径。  半径将随着变换的缩放而缩放。  collider.radius=5;  ◆var rpm:float  描述:当前车轮轴的旋转速度,以旋转/秒(只 读)  ◆var sidewaysFriction:WheelfrictionCurve  描述:侧向的轮胎摩擦力属性。  ◆var steerAngle:float  描述:转向的角度,总是绕着本地 y 轴。  //转向前  collider.steerAngle=0;  较高的速率使用小的转向角:一点角度就足够了。  ◆var suspensionDistance:float  描述:在局部空间下,车轮悬挂的最大扩展距离。  悬挂总是沿着本地 y 轴向下扩展。悬挂过程将随着变换的缩放而缩放。  collider.susensionDistance:=0.1;  ◆var suspensionSpring:JointSring  描述:车轮悬挂的参数。悬挂视图到达一个目标的位置      通过添加弹簧和阴尼力。  suspensionSpring.spring 力视图到达这个目标的位置。较大的值使得悬挂更快到达目标  位置。  suspensionSpring.damer 力阻尼悬挂速度。较大的值使得悬挂更慢到达目标。    悬挂试图到达 suspensionSpring.targetPositon.它是悬挂沿着 suspensionDistance 的 剩余长度。零值表示完全扩展。1 表示完全压缩,缺省的值为 0,它匹配于常规汽车的悬挂 行为。  函数  ◆function GetGroundHit(out hit:WheelHit):bool  描述:获取轮胎的地面碰撞数据。  如果车轮碰撞器与某些物体发生了碰撞,返回 true 并填充 hit 结构。如果车轮没有碰撞。  返回 false 并保持 hit 结构不变。  报告的 hit 总是最接近的一个,因为轮胎摩擦力模型不会自动响应其他的 physicMaterial。  任何对不同地面材质的模拟必须基于这里所返回的碰撞器材质来手动调整 forwordFriction 和 sidewayFriction 完成。  继承的成员  继承的变量  attachedRigidbody   该碰撞器所附加的刚体。  isTrigger  该碰撞器是一个触发器?  material  该碰撞器使用的材质。  sharedMaterial   该碰撞器的共享物体材质。  bounds  碰撞器在世界空间中包围盘。  Transform 附加到这个 GameObject 的 Transform(如果没有为 null)。  Light  附加到这个 GameObject 的 Light(如果没有为 null)。  Animation 附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce 附加到这个 GameObject 的 ConstantForce(如果没有为 null)。  Renderer 附加到这个 GameObject 的 Renderer(如果没有为 null)。  audio  附加到这个 GameObject 的 AudioSourec(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView 附加到这个 GameObject 的 NetworkView(如果没有为 null)。  Collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint 附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter   附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject 这个组件所附加的游戏物体。一个组件总是附加到一个游戏物体。  Tag   这个游戏的标签。  Name  对象的名称。  hideFlags 该物体是否被隐藏,保存在场景中或被用户修改?    继承的函数    ClosestPointOnBounds  附加碰撞器到包围盒最近的点。    Raycast  投射一个 Ray,它忽略所有的碰撞器除了这个。  GetComponet   返回 type 类型的组件,如果游戏物体上附加一个,如果没有返回 null。  GetComponentInchildren  返回 type 类型的组件,这个组件位于 GameObject 或者任 何它的子物体上,使用深度优先搜索。      GetComponentsInchildren  返回所有 type 类型的组件,这些组件位于 GameObject 或 者任何它的子物体上。  GetComponets 返回 Gameobject 所有 type 类型的组件。  CompareTag  这游戏物体被标签为 tag?  SendMessageUpwards   在这游戏物体的每个 MonoBehaviour 和该行为的组先  上调  用名为 methodName 方法。  SendMessage 在这游戏物体的每个 MonoBehaviour 上调用名为  methodName 方法。  BoradcastMessage   在这个游戏物体或其任何子上的每个 MonoBehaviour 上调用 methodName 方法。  GetInstanceID            返回该物体的实例 id。    继承的消息传递    OnTriggerEnter  当这个 Collider other 进入 trigger 进 OnTriggerEnter 被调用。    OnTriggerExit   当这个 Collider other 停止触碰 trigger 时 OnTriggerExit 被调用。    OnTriggerStay   对于每个 Collider  other,当它触碰到 trigger 时,OnTriggerStay 会    在每一帧中都被调用。    OnCollisionEnter  当这个碰撞器/刚体开始触碰另一个刚体/碰撞器时    OnCollisionEnter 被调用。  OnCollisionExit  当这个碰撞器/刚体停止触碰另一个刚体/碰撞器时 OnCollisionExit  被调用.  OnCollisionStay 对于每个与刚体/碰撞器相触碰的碰撞器/刚体  OnCollisionStay 将在每一帧中被调用。  继承的类函数  Operator bool 这个物体存在吗?  Instatiate   克隆 original 物体并返回这个克隆。  Destroy   移除一个游戏物体,组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代替  FindObjectsOfType 返回所有类型为 type 的激活物体。  FindObjectOfType 返回第一个类型为 type 的激活物体。  Operator==  比较两个物体是否相同。  Operator!=  比较两个物体是否不相同。  DontDestroyOnLoad   加载新场景时确保物体 target 不被自动销毁。  Joint  类,继承自 Comonent    Joint 是所有关节的基类。    参见:CharacterJoint,HingJoint,SpringJoint.  变量  ◆var  anchor:Vector3  描述:关节的移动被限制于绕着这个锚点的位置。  定义在本地空间中的位置。  hingeJoint.anchor=Vector3(2,0,0);  ◆var axis:Vector3      描述:物体被限制于绕着这个轴的方向旋转。    定义在本地空间中的轴。    hingeJoint.axis=Vector3.up;  ◆var breakForce:float  描述:需要断开关节的力  力可能来自与其他物体的碰撞,应用到刚体的力。addTorque 或来自其他关节。  //当一个大于 10 的力矩被应用时使用关节断开  hingeJoint.breakForce=10;  //使关节不会被断开  hingeJoint.breakForce=mathf.Infinity;  参见:OnJointBreak  ◆var breakTorque:float  描述:需要断开关节的力矩  力矩可能来自与其他物体的碰撞,使用 rigidbody.AddTorque 或来自其他关节。  //当一个大于 10 的力矩被应用时使关节断开  hingeJoint.breakTorque=10;  //使关节不会被断开  hingeJoint.breakTorque=mathf.Infinity;  参见:OnJointBreak  ◆var connectedBody:Rigidbody  描述:这个关节链接到的另一个刚体的引用。  如果不设置,这个关节将连接物体到世界。  //连接关节到世界而不是其他刚体  hingeJoint.connectedBody=Null;  连接关节到其他物体  var otherBody=Rigidbody;  hingeJoint.connectedBody=otherBody;  消息传递  ◆function OnJointBreak(breakForce:float):void  描述:当附加到相同游戏物体上的关节被断开。当关节断开时,OnJointBreak 将被调用  ,应用到关节的断开力将被传入,OnJointBreak 之后这个关节自动从游戏物体移除。参 见:  Joint.breakForce  继承的成员  继承的变量  Transform 附加到这个 GameObject 的 Transform(如果没有为 null)。  Rigidbody 附加到这个 GameObject 的 Rigidbody(如果没有为 null)。  Camera  附加到这个 GameObject 的 Camera(如果没有为 null)。  Light  附加到这个 GameObject 的 Light(如果没有为 null)。  Animation 附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce 附加到这个 GameObject 的 ConstantForce(如果没有为 null)。  Renderer 附加到这个 GameObject 的 Renderer(如果没有为 null)。  audio            附加到这个 GameObject 的 AudioSouree(如果没有为 null)。  guiText          附加到这个 GameObject 的 GUIText(如果没有为 null)。      networkView      附加到这个 GameObject 的 NetworkView(只读)(如果没有为 null)。  guiTexture       附加到这个 GameObject 的 GUITexture(只读)(如果没有为 null)。  collider         附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint       附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter  附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject       这个组件所附加的游戏物体。一个组件总是附加到一个游戏物体。  tag              这个游戏物体的标签。  name             对象的名称。  hideFlags        该物体是否被隐藏。保存在场景中或被用户修改?  继承的函数  GetComponent             返回 type 类型的组件,如果游戏物体上附加了一个,如 果没有返回 null。  GetComponentInChildren   返回 type 类型的组件,这个组件位于 GameObject 或任何 它的子物体上,使用深度优先搜索。  GetComponentsInChildren  返回所有 type 类型的组件,这些组件位于 GameObject 或 任何它的子物体上。  GetComponents            返回 GameObject 上所有 type 类型的组件。  CompareTag               这个游戏物体标签为 tag?  SendMessageUpwards       在这个游戏物体的每个 MonoBehaviour 和该行为的祖先 上调用名为 methodName 方法。  SendMessage              在这个游戏物体的每个 MonoBehaviour 上调用 methodName 方法。  BroadcastMessage         在这个游戏物体或其任何子上的每个 MonoBehaviour 上调 用 methodName 方法。  GetInstanceID            返回该物体的实例 id。  继承的类函数  operator bool      这个物体存在吗?  Instantiate        克隆 original 物体并返回这个克隆。  Destroy            移除一个游戏物体,组件或资源。  DestroyImmediate   立即销毁物体 obj。强烈建议使用 Destroy 代替。  FindObjectsOfType  返回所有类型为 type 的激活物体。  FindObjectOfType   返回第一个类型为 type 的激活物体。  operator ==        比较两个物体是否相同。  operator !=        比较两个物体是否不相同。  DontDestroyOnLoad  加载新场景时确保物体 target 不被自动销毁。  CharacterJoint  类,继承自 Joint  Joints 的属性主要用于碰撞效果。它们是一个扩展的球窝状 joint,允许你限制 joint 在 每个轴上。  变量  ◆var highTwistLimit:SoftJointLimit  描述:角色关节原始轴的上限。  这个限制是相对于两个刚体开始模拟时的角度。  ◆var lowTwistLimit:SoftJointLimit      描述:角色关节原始轴上的下限。  这个限制是相对于两个刚体开始模拟时的角度。  ◆var swing1Limit:SoftJointLimit  描述:在角色关节的原始轴上限制。  限制是对称的。因此,例如 30 将在此‐30 到 30 之间限制是相对于两个刚体开始模拟时 的角度。  ◆var swing2Limit:SoftJointLimit  描述:在角色关节的原始轴上的限制。  限制是对称的。因此,例如 30 将在此‐30 到 30 之间限制是相对于两个刚体开始模拟时 的角度。  ◆var swingAxis:vector3  描述:关节可以绕着旋转的第二轴  CharacterJoint.swing1Limit 是被允许的绕着这个轴旋转的限制。  继承的成员  继承的变量  Transform 附加到这个 GameObject 的 Transform(如果没有为 null)。  Rigidbody 附加到这个 GameObject 的 Rigidbody(如果没有为 null)。  Camera  附加到这个 GameObject 的 Camera(如果没有为 null)。  Light  附加到这个 GameObject 的 Light(如果没有为 null)。  Animation 附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce 附加到这个 GameObject 的 ConstantForce(如果没有为 null)。  Renderer 附加到这个 GameObject 的 Renderer(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView 附加到这个 GameObject 的 NetworkView(如果没有为 null)。  Collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint 附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter   附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject 这个组件所附加的游戏物体。一个组件总是附加到一个游戏物体。  Tag   这个游戏的标签。  Name  对象的名称。  hideFlags 该物体是否被隐藏,保存在场景中或被用户修改?  继承的函数  GetComponet 返回 type 类型的组件,如果游戏物体上附加一个,如果没有返                        回 null。  GetComponentInchildren  返回 type 类型的组件,这个组件位于 GameObject 或者任 何它的子物体上,使用深度优先搜索。  GetComponentsInchildren  返回所有 type 类型的组件,这些组件位于 GameObject 或 者任何它的子物体上。  GetComponets 返回 Gameobject 所有 type 类型的组件。  CompareTag  这游戏物体被标签为 tag?  SendMessageUpwards   在这游戏物体的每个 MonoBehaviour 和该行为的组先上调 用名为 methodName 方法。  SendMessage 在这游戏物体的每个 MonoBehaviour 上调用名为  methodName 方法。      BoradcastMessage   在这个游戏物体或其任何子上的每个 MonoBehaviour 上调用 methodName 方法。  GetInstanceID            返回该物体的实例 id。  继承的类函数  Operator bool 这个物体存在吗?  Instatiate   克隆 original 物体并返回这个克隆。  Destroy   移除一个游戏物体,组件或资源。  DestroyImmediate 立即销毁物体 obj。强烈建议使用 Destroy 代替  FindObjectsOfType 返回所有类型为 type 的激活物体。  FindObjectOfType 返回第一个类型为 type 的激活物体。  Operator==  比较两个物体是否相同。  Operator!=  比较两个物体是否不相同。  DontDestroyOnLoad   加载新场景时确保物体 target 不被自动销毁。  ConfigurableJoint    类,继承自 Joint    可配置关节是一种非常灵活的关节,它让你完全控制旋转和线性移动。    你也可以用它的构建所有其他类型的关节,但是它的设置也是非常复杂的。它让 你在每个旋转轴线自由度上完全控制 motor.drive 和关节限制。  变量  ◆var angularXDrive:jointDrive  描述:定义关节的旋转如何绕着局部 x 轴作用。仅在 Rotation Drive Mode  为 Swing&  twist 时使用。  ◆var angular XMotion:configurableJointMotion  描述:根据 Low 和 High Angular Xlimit 允许沿着 X 轴的旋转为 free,完全 locked 或者  limited.  ◆var angularYLimit:SoftJointLimit  描述:基于原始旋转的增量定义的旋转约束边界。  ◆var angularYMotion:ConfigurableJointMotion  描述:根据 Low 和 High AngularZLimit 允许沿着 Z 轴的旋转为 Free,完全 Locked 或者  Limited。  ◆var angularYZDrive:JointDrive  描述:定义的旋转如何绕着局部 Y 和  Z 轴作用。仅在 Rotation Drive Mode 为 Swing&Twist  时使用。  ◆var angularZLimit:SoftJointLimit  描述:基于到原始旋转的增量定义的旋转约束边界。  ◆var angularZmotion:ConfigurableJointMotion  描述:根据 Low 和 High Angular Zlimit 允许沿着 Z 轴的族转为 Free,完全 Locked 或者  Limited.  ◆var configuredInWorldSpace:bool  描述:如果启用,所有目标值将在世界空间中计算而不是物体的局空间。  ◆var highAngularXLimit:SoftJointLimit  描述:基于到原始旋转的增量定义的最大旋转约束边界。  ◆var linearLimit:SoftJointLimit  基于到关节原点的距离确定的移动约束边界定义。      ◆var lowAngularXlimit:SoftJointLimit  基于到原始旋转的增量定义的最小旋转约束边界。  ◆var projectionAngle:float  描述:到 Connected  Body 的距离,在物体折回到一个可接受的位置之前必须超过这个 距离。  ◆var projectionDistance:float  描述:到 Connected  Body 的距离,在物体折回到一个可接受的位置之前必须超过这个 距离。  ◆var projectionMode:JointProjectionMode  描述:该属性用来在物体偏离太多时候将它回到约束位置。  ◆var rotationDriveMode:RotationDriveMode  描述:控制物体使用 X&YZ 或自身的 slerp Dirve 旋转  ◆var slerpDrive:JointDrive  描述:定义关节的旋转如何绕着所有的局部轴作用。仅在 Rotation Drive Mode 为 slerp  only  时使用。  ◆var targetAngularVelocity:Vector3  描述:这是一个 Vector3。它定义了关节应该旋转的角速度。  ◆var targetPosition:Vector3  描述:需要关节移动到的位置。  ◆var targetVelocity:Vector3  描述:需要关节移动的速度。  ◆var xDrive:JointDrive  描述:定义关节的移动如何沿着局部 X 轴作用。  ◆var  xMotion:JointDrive  描述:按照 Linear Limit 允许沿着 X 轴的移动为 Free,完全 Locked 或者 Limited。  ◆var yDrive:JointDrive  描述:定义关节的移动如何沿着局部 Y 轴作用。  ◆var yMotion:JointDrive  描述:按照 Linear Limit 允许沿着 Y 轴的移动为 Free,完全 Locked 或者 Limited。  ◆var zDrive:JointDrive  描述:定义关节的移动如何沿着局部 Z 轴作用。  ◆var zMotion:JointDrive  描述:按照 Linear Limit 允许沿着 Z 轴的移动为 Free,完全 Locked 或者 Limited。  继承的成员  继承的变量    connectedBody  这个关机链接到的另一个刚体的引用。    axis  物体被限制于绕着这个轴的方向旋转。    anchor 关节的移动被限制于绕着这个锚点的位置。    breakForce   需要断开关节的力。    breakTorque   需要断开关节的力矩。  transform  附加到这个 GameObject 的 Transform(如果没有为 null)。  rigidbody  附加到这个 GameObject 的 Rigidbody(如果没有为 null)。  camrea  附加到这个 GameObject 的 Camera(如果没有为 null)。  light  附加到这个 GameObject 的 Light(如果没有为 null)。      animation  附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce  附加到这个 GameObject 的 ConstantForce 如果没有为 null)。  renderer  附加到这个 GameObject 的 Renderer(如果没有为 null)。  audio  附加到这个 GameObject 的 AudioSource(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView  附加到这个 GameObject 的 NetworkView(只读)。(如果没有为 null)。  guiTexture  附加到这个 GameObject 的 GUITexture(只读)。(如果没有为 null)。  collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint  附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter  附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject  这个组件所附加的游戏物体。一个组件总是附加到一个游戏物体。  tag  这个游戏物体的标签。  name  对象的名称。  hideFlags  该物体是够被隐藏,保存在场景中或被用户修改?  继承的函数  GetComponent  返回 type 类型的组件,如果游戏物体上附加了一个,如  果没有返回 null。  GetComponentInChildren  返回 type 类型的组件,这个组件位于 GameObject 或任何  它的子物体上,使用深度优先搜索。  GetComponentsInChildren  返回所以 type 类型的组件,这些组件位于 GameObject 或  任何它的子物体上。  GetComponents  返回 GameObject 上所以 type 类型的组件。  CompareTag  这个游戏物体被标签为 tag?  SendMessageUpwards  在这个游戏物体的每个 MonoBehaviour 和该行为的祖先  上调用名为 methodName 方法。  SendMessage  在这个游戏物体上的每个 MonoBehaviour 上调用  methodName 方法。  BroadcastMessage  在这个游戏物体或其任何子上的每个 MonoBehaviour 上  调用 methodName 方法。  GetInstanceID  返回该物体的实例 id。  继承的消息传递  OnJointBreak  当附加到相同游戏物体上的关节被断开时调用。  继承的类函数  operator bool  这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体,组件或资源。  DestroyImmediate  立即销毁物体 obj。强烈建议使用 Destroy 代替。  FindObjectsOfType  返回所有类型为 type 的激活物体。  FindObjectsOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator !=  比较两个物体是否不相同。  DontDestroyOnLoad  加载新场景时确保物体 target 不被自动销毁。  FixedJoint  类,继承自 Joint      FixedJoint 将两个刚体组合在一起,使他们在边界位置粘合。  参见:  CharacterJoint, HingeJoint, SpringJoint.  继承的成员  继承的变量  ConnectedBody  这个关机链接到的另一个刚体的引用。  axis  物体被限制于绕着这个轴的方向旋转。  anchor  关节的移动被限制于绕着这个锚点的位置。  breakForce  需要断开关节的力。  breakTorque 需要断开关节的力矩。  transform  附加到这个 GameObject 的 Transform(如果没有为 null)。  rigidbody  附加到这个 GameObject 的 Rigidbody(如果没有为 null)。  camrea  附加到这个 GameObject 的 Camera(如果没有为 null)。  light  附加到这个 GameObject 的 Light(如果没有为 null)。  animation  附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce  附加到这个 GameObject 的 ConstantForce 如果没有为 null)。  renderer  附加到这个 GameObject 的 Renderer(如果没有为 null)。  audio  附加到这个 GameObject 的 AudioSource(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView  附加到这个 GameObject 的 NetworkView(只读)。(如果没有为 null)。  guiTexture  附加到这个 GameObject 的 GUITexture(只读)。(如果没有为 null)。  collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint  附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter  附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject  这个组件所附加的游戏物体。一个组件总是附加到一个游戏物体。  tag  这个游戏物体的标签。  name  对象的名称。  hideFlags  该物体是够被隐藏,保存在场景中或被用户修改?  继承的函数  GetComponent  返回 type 类型的组件,如果游戏物体上附加了一个,如  果没有返回 null。  GetComponentInChildren  返回 type 类型的组件,这个组件位于 GameObject 或任何  它的子物体上,使用深度优先搜索。  GetComponentsInChildren  返回所以 type 类型的组件,这些组件位于 GameObject 或  任何它的子物体上。  GetComponents  返回 GameObject 上所以 type 类型的组件。    CompareTag  这个游戏物体被标签为 tag?  SendMessageUpwards  在这个游戏物体的每个 MonoBehaviour 和该行为的祖先  上调用名为 methodName 方法。  SendMessage  在这个游戏物体上的每个 MonoBehaviour 上调用  methodName 方法。  BroadcastMessage  在这个游戏物体或其任何子上的每个 MonoBehaviour 上  调用 methodName 方法。  GetInstanceID  返回该物体的实例 id。      继承的消息传递  OnJointBreak  当附加到相同游戏物体上的关节被断开时调用。  继承的类函数  operator bool  这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体,组件或资源。  DestroyImmediate  立即销毁物体 obj。强烈建议使用 Destroy 代替。  FindObjectsOfType  返回所有类型为 type 的激活物体。  FindObjectsOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator !=  比较两个物体是否不相同。  DontDestroyOnLoad  加载新场景时确保物体 target 不被自动销毁。  HingeJoint  类,继承自 Joint  HingeJoint 组合两个刚体,约束它们的移动就像用一个铰链链接他们一样。  这个类关节对于门市非常好的,但是也能被用于模型链,等等...  HingeJoint 有一个动力,这个能够用来使链接绕着关节的轴旋转。一个弹簧,它通过  绕着铰链关节轴旋转达到一个目标角度。和一个限制,用来约束关节角度。  变量  ◆  var angle: folat  描述:链接相对于静止位置的当前角度。(只读)  两个物体间的静止角度再开始模拟时总是零。  print(hingeJoint.angle);  ◆  var limits: JointLimits  描述:铰链链接的限制。  这个链接将被限制,这样角度总是在 limits.min 和 limits.max 之间,链接的角度是相对  于静止角度的度数。两个物体间的静止角度再开始模拟时总是零。  为门制作一个铰链限制;  hinge.Joint.limits.min=();  hinge.Joint.limits.minBounce=();  hinge.Joint.limits.max=9();  hinge.Joint.limits.maxBounce=();  修改限制自动地启用它。  ◆  var motor: JointMotor  描述:动力将使用一个最大力来试图以角度/秒来到达目标速度。  动力试图以角度/秒达到 motor.targetVelocity 角速度.  如果 motor.force 足够大,动力将  只能达到 motor.targetVelocity。如果关节旋转的比 motor.targetVelocity 快,动力将断开, 负  motor.targetVelocity 将使得动力以相反的方向旋转。  motor.force 是动力能够运用的最大力矩。如果它是零动力将禁用。如果  motor.freeSpin 为假,动力将只在旋转比 motor.targetVelocity 快时断开。如果 motor.freeSpin  为真,动力将不断开。  //制作一个铰链动力以每秒 90 度旋转,和一个较大的力。      hingeJoint.motor.force = 100;  hingeJoint.motor.targetVelocity = 90;  hingeJoint.motor.freeSpin = false;  设置 HingeJoint.useMotor 为真,将在修改动力时自动地启动动力。  ◆  var spring: JointSpring  描述:通过添加弹力和阻力,弹簧试图达到一个目标角度。  spring.spring  力视图到达这个目标角度,较大的值使得弹簧更快达到目标位置。  spring.damper  阻尼角速度,较大的值使得弹簧更慢到达目标。  弹簧到达 spring.targetPosition 时相对于静止的角度,两个物体间的静止角度在开始模  拟时总是零。  //是弹簧尽量到达 70 度角;  //这可能是用来发射弹弓;  hingeJoint.spring.spring = 10;  hingeJoint.spring.damper = 3;  hingeJoint.spring.targetPosition = 70;  修正弹簧自动地启用它。  ◆  var useLimits: bool  描述:启用关节的限制。  hingeJoint.useLimits = true;  ◆  var useMotor: bool  描述:启动关节的动力。  hingeJoint.useMotor = true;   ◆  var useSpring: bool  描述:启用关节的弹性。  hingeJoint.useMotor = true;  ◆  var velocity: float  描述:关节的角速度,度/秒。  print(hingeJoint.velocity);  继承的成员  继承的变量  ConnectedBody  这个关机链接到的另一个刚体的引用。  axis  物体被限制于绕着这个轴的方向旋转。  anchor  关节的移动被限制于绕着这个锚点的位置。  breakForce  需要断开关节的力。  breakTorque 需要断开关节的力矩。  transform  附加到这个 GameObject 的 Transform(如果没有为 null)。  rigidbody  附加到这个 GameObject 的 Rigidbody(如果没有为 null)。  camrea  附加到这个 GameObject 的 Camera(如果没有为 null)。  light  附加到这个 GameObject 的 Light(如果没有为 null)。  animation  附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce  附加到这个 GameObject 的 ConstantForce 如果没有为 null)。  renderer  附加到这个 GameObject 的 Renderer(如果没有为 null)。  audio  附加到这个 GameObject 的 AudioSource(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。      networkView  附加到这个 GameObject 的 NetworkView(只读)。(如果没有为 null)。  guiTexture  附加到这个 GameObject 的 GUITexture(只读)。(如果没有为 null)。  collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint  附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter  附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject  这个组件所附加的游戏物体。一个组件总是附加到一个游戏物体。  tag  这个游戏物体的标签。  name  对象的名称。  hideFlags  该物体是够被隐藏,保存在场景中或被用户修改?  继承的函数  GetComponent  返回 type 类型的组件,如果游戏物体上附加了一个,如  果没有返回 null。  GetComponentInChildren  返回 type 类型的组件,这个组件位于 GameObject 或任何  它的子物体上,使用深度优先搜索。  GetComponentsInChildren  返回所以 type 类型的组件,这些组件位于 GameObject 或  任何它的子物体上。  GetComponents  返回 GameObject 上所以 type 类型的组件。  CompareTag  这个游戏物体被标签为 tag?  SendMessageUpwards  在这个游戏物体的每个 MonoBehaviour 和该行为的祖先  上调用名为 methodName 方法。  SendMessage  在这个游戏物体上的每个 MonoBehaviour 上调用  methodName 方法。  BroadcastMessage  在这个游戏物体或其任何子上的每个 MonoBehaviour 上  调用 methodName 方法。  GetInstanceID  返回该物体的实例 id。  继承的消息传递  OnJointBreak  当附加到相同游戏物体上的关节被断开时调用。  继承的类函数  operator bool  这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体,组件或资源。  DestroyImmediate  立即销毁物体 obj。强烈建议使用 Destroy 代替。  FindObjectsOfType  返回所有类型为 type 的激活物体。  FindObjectsOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator !=  比较两个物体是否不相同。  DontDestroyOnLoad  加载新场景时确保物体 target 不被自动销毁。  SpringJoint  类,继承自 Joint  弹性关节连接 2 个刚体,弹力将自动应用以便保持物体在给定的距离内。  弹性试图位置他们的开始距离,因此如果你的关节开始的时候是分离得,那么这个关  节将试图维持这个距离。minDistance 和 maxDistance 属性添加这个隐式距离的顶部。  变量  ◆  var damper: float      描述:用于阻尼弹簧的阻尼力。  ◆  var maxDistance: float  描述:两个物体之间相对于它们的初试距离的最大距离。  距离将在 minDistance 和 maxDistance 之间,该值是相对于场景第一次加载时重心之间 的  距离。  ◆  var minDistance: float  描述:两个物体之间相对于它们的初试距离的最小距离。  距离将在 minDistance 和 maxDistance 之间,该值是相对于场景第一次加载时重心之间 的  距离。  ◆  var spring: folat  描述:弹力用于保持两个物体在一起。  继承的成员  继承的变量  ConnectedBody  这个关机链接到的另一个刚体的引用。  axis  物体被限制于绕着这个轴的方向旋转。  anchor  关节的移动被限制于绕着这个锚点的位置。  breakForce  需要断开关节的力。  breakTorque 需要断开关节的力矩。  transform  附加到这个 GameObject 的 Transform(如果没有为 null)。  rigidbody  附加到这个 GameObject 的 Rigidbody(如果没有为 null)。  camrea  附加到这个 GameObject 的 Camera(如果没有为 null)。  light  附加到这个 GameObject 的 Light(如果没有为 null)。  animation  附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce  附加到这个 GameObject 的 ConstantForce 如果没有为 null)。  renderer  附加到这个 GameObject 的 Renderer(如果没有为 null)。  audio  附加到这个 GameObject 的 AudioSource(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView  附加到这个 GameObject 的 NetworkView(只读)。(如果没有为 null)。  guiTexture  附加到这个 GameObject 的 GUITexture(只读)。(如果没有为 null)。  collider  附加到这个 GameObject 的 Coll ider(如果没有为 null)。  hingeJoint  附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter  附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject  这个组件所附加的游戏物体。一个组件总是附加到一个游戏物体。  tag  这个游戏物体的标签。  name  对象的名称。  hideFlags  该物体是够被隐藏,保存在场景中或被用户修改?  继承的函数  GetComponent  返回 type 类型的组件,如果游戏物体上附加了一个,如  果没有返回 null。  GetComponentInChildren  返回 type 类型的组件,这个组件位于 GameObject 或任何  它的子物体上,使用深度优先搜索。  GetComponentsInChildren  返回所以 type 类型的组件,这些组件位于 GameObject 或      任何它的子物体上。  GetComponents  返回 GameObject 上所以 type 类型的组件。  CompareTag  这个游戏物体被标签为 tag?  SendMessageUpwards  在这个游戏物体的每个 MonoBehaviour 和该行为的祖先  上调用名为 methodName 方法。  SendMessage  在这个游戏物体上的每个 MonoBehaviour 上调用  methodName 方法。  BroadcastMessage  在这个游戏物体或其任何子上的每个 MonoBehaviour 上  调用 methodName 方法。  GetInstanceID  返回该物体的实例 id。  继承的消息传递  OnJointBreak  当附加到相同游戏物体上的关节被断开时调用。  继承的类函数  operator bool  这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体,组件或资源。  DestroyImmediate  立即销毁物体 obj。强烈建议使用 Destroy 代替。  FindObjectsOfType  返回所有类型为 type 的激活物体。  FindObjectsOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator !=  比较两个物体是否不相同。  DontDestroyOnLoad  加载新场景时确保物体 target 不被自动销毁。  MeshFilter  类,继承自 Component  一个类用来访问 mesh filter 的 Mesh.  使用这个作为一个程序的网格接口。参见:Mesh class.  变量  ◆  var mesh: mesh  描述:返回赋给网格过滤器的实例化 Mesh。  如果没有赋予网格过滤器,一个新的网格将被创建并被导入。  如果赋予网格过滤器的网格被共享,它将被自动赋值并且实例化的网格将被返回。  通过使用 mesh 属性你能只修改单个物体。其他使用相同网格的物体不会被修改。  function Update (){  //获取实例化网格  var mesh: Mesh = GetComponent(MeshFilter).mesh;  //随即改变顶点  var vertices = mesh. vertices;  for(var p in vertices)  {  p.y ~= Random.Range(‐0.3,0.3);  }  mesh.vertices = vertices;  mesh.RecalculateNormals();  }      参见:  Mesh class.  ◆  var sharedMesh: Mesh  描述:返回网格过滤器的共享网格。  建议只使用这个函数来读网格数据而不是写,因为你可能修改导入的资源并且使用这 个  网格的所有物体都会被影响。  继承的成员  继承的变量  transform  附加到这个 GameObject 的 Transform(如果没有为 null)。  rigidbody  附加到这个 GameObject 的 Rigidbody(如果没有为 null)。  camrea  附加到这个 GameObject 的 Camera(如果没有为 null)。  light  附加到这个 GameObject 的 Light(如果没有为 null)。  animation  附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce  附加到这个 GameObject 的 ConstantForce 如果没有为 null)。  renderer  附加到这个 GameObject 的 Renderer(如果没有为 null)。  audio  附加到这个 GameObject 的 AudioSource(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView  附加到这个 GameObject 的 NetworkView(只读)。(如果没有为 null)。  guiTexture  附加到这个 GameObject 的 GUITexture(只读)。(如果没有为 null)。  collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint  附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter  附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject  这个组件所附加的游戏物体。一个组件总是附加到一个游戏物体。  tag  这个游戏物体的标签。  name  对象的名称。  hideFlags  该物体是够被隐藏,保存在场景中或被用户修改?  继承的函数  GetComponent  返回 type 类型的组件,如果游戏物体上附加了一个,如  果没有返回 null。  GetComponentInChildren  返回 type 类型的组件,这个组件位于 GameObject 或任何  它的子物体上,使用深度优先搜索。  GetComponentsInChildren  返回所以 type 类型的组件,这些组件位于 GameObject 或  任何它的子物体上。  GetComponents  返回 GameObject 上所以 type 类型的组件。  CompareTag  这个游戏物体被标签为 tag?  SendMessageUpwards  在这个游戏物体的每个 MonoBehaviour 和该行为的祖先  上调用名为 methodName 方法。  SendMessage  在这个游戏物体上的每个 MonoBehaviour 上调用  methodName 方法。  BroadcastMessage  在这个游戏物体或其任何子上的每个 MonoBehaviour 上  调用 methodName 方法。  GetInstanceID  返回该物体的实例 id。  继承的类函数  operator bool  这个物体存在吗?      Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体,组件或资源。  DestroyImmediate  立即销毁物体 obj。强烈建议使用 Destroy 代替。  FindObjectsOfType  返回所有类型为 type 的激活物体。  FindObjectsOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator !=  比较两个物体是否不相同。  DontDestroyOnLoad  加载新场景时确保物体 target 不被自动销毁。  ParticleAnimator  类,继承自 Component  粒子动画器随着时间移动你粒子,使用它们将风、力和颜色循环应用到你的粒子系统。  这个类是 particle animator 组件的脚本接口。  变量  ◆  var autodestruct: bool  描述:这个粒子动画器的 GameObject 会自动销毁?  当设置为 true,该 GameObject 将在所有粒子消失后被销毁。  ◆  var colorAnimation: Color[]  描述:粒子的色彩随着生命循环。  当前,你不能直接修改这个数组的索引。相反,你需要取间整个数组,修改它,然后 将  它赋回粒子动画器。  //如何通过脚本正确的改变 colorAnimation 颜色  //附加这个脚本到 GameObject 这个物体包含完整的粒子系统  function Start ()  {  var modifiedColors: Color[]=particleAnimatorcolorAnimation;  mofifiedColor[2]=Color.yellow;  particleAnimator.colorAnimation=modifiedColors;  }  ◆  var damping: float  描述:每帧粒子速度减慢多少  值为 1 没有阻尼,值越小使它们越慢。  ◆  var doesAnimateColor: bool  描述:粒子在它们的生命期中循环它们的颜色?  ◆  var force: Vector3  描述:应用到粒子的力  ◆  var localRotationAxis: Vector3  描述:粒子绕着旋转的本地空间轴。  ◆  var rndForce: Vector3  描述:添加到粒子的随机力  用这个来让烟变得更加有活力。  ◆  var sizeGrow: float  描述:粒子的尺寸如何随着生命期增加  ◆  var worldRotationAxis: Vector3      描述:粒子绕着旋转的世界空间轴。  继承的成员  继承的变量  transform  附加到这个 GameObject 的 Transform(如果没有为 null)。  rigidbody  附加到这个 GameObject 的 Rigidbody(如果没有为 null)。  camrea  附加到这个 GameObject 的 Camera(如果没有为 null)。  light  附加到这个 GameObject 的 Light(如果没有为 null)。  animation  附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce  附加到这个 GameObject 的 ConstantForce 如果没有为 null)。  renderer  附加到这个 GameObject 的 Renderer(如果没有为 null)。  audio  附加到这个 GameObject 的 AudioSource(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView  附加到这个 GameObject 的 NetworkView(只读)。(如果没有为 null)。  guiTexture  附加到这个 GameObject 的 GUITexture(只读)。(如果没有为 null)。  collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint  附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter  附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject  这个组件所附加的游戏物体。一个组件总是附加到一个游戏物体。  tag  这个游戏物体的标签。  name  对象的名称。  hideFlags  该物体是够被隐藏,保存在场景中或被用户修改?  继承的函数  GetComponent  返回 type 类型的组件,如果游戏物体上附加了一个,如  果没有返回 null。  GetComponentInChildren  返回 type 类型的组件,这个组件位于 GameObject 或任何  它的子物体上,使用深度优先搜索。  GetComponentsInChildren  返回所以 type 类型的组件,这些组件位于 GameObject 或  任何它的子物体上。  GetComponents  返回 GameObject 上所以 type 类型的组件。  CompareTag  这个游戏物体被标签为 tag?  SendMessageUpwards  在这个游戏物体的每个 MonoBehaviour 和该行为的祖先  上调用名为 methodName 方法。  SendMessage  在这个游戏物体上的每个 MonoBehaviour 上调用  methodName 方法。  BroadcastMessage  在这个游戏物体或其任何子上的每个 MonoBehaviour 上  调用 methodName 方法。  GetInstanceID  返回该物体的实例 id。  继承的类函数  operator bool  这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体,组件或资源。  DestroyImmediate  立即销毁物体 obj。强烈建议使用 Destroy 代替。  FindObjectsOfType  返回所有类型为 type 的激活物体。  FindObjectsOfType  返回第一个类型为 type 的激活物体。      operator==  比较两个物体是否相同。  operator !=  比较两个物体是否不相同。  DontDestroyOnLoad  加载新场景时确保物体 target 不被自动销毁。  ParticleEmitter  类,继承自 Component  粒子发射器的脚本接口  参见:Particle documentation.  变量  ◆  var emit: bool  描述:粒子应该被自动发射?  //发射粒子三秒  particleEmitter.emit=true;  yield WaitForSeconds(3);  //然后停止  particleEmitter.emit=false;  ◆  var emitterVelocityScale: float  描述:粒子继承的发射器的速度量。  ◆  var localVelocity: Vector3  描述:粒子沿着物体的 X,Y,和 Z 轴的开始速度。  ◆  var maxEmission: float  描述:每秒生成的最大粒子的数量  ◆  var maxEnergy: float  描述:每个粒子的最大生命期,以秒计。  ◆  var ma xSize: float  描述:每个粒子生成时的最大尺寸。  ◆  var minEmission: float  描述:每秒生成的最小粒子的数量  ◆  var minEnergy: float  描述:每个粒子的最小生命期,以秒计。  ◆  var minSize: float  描述:每个粒子生成时的最小尺寸。  ◆  var particleCount:int  描述:粒子的当前数量(只读)。  ◆  var particles:Particle[]  描述:返回所有粒子的一个拷贝和指定所有粒子的数组到当前粒子。  注意,修改了粒子数组后,你必须将它赋回 particleEmitter 才能看到改变。能力以零或  小于零的粒子将在赋给粒子数组的时候被销毁。因此,当创造一个完整的新粒子数组 时,你需  要显式地设置所有粒子的能量。  //附加这个脚本到一个已有的粒子系统上。  function LateUpdate(){  //提取粒子  var particles=particleEmitter particles  for(var i=(), i=particles length; i**){      //在正弦曲线上上下移动粒子  car yPosition = Mathf.Sin (Time.time) * Time.deltaTime.Particles[i]position *=Vector3 (0,  yPosition, 0)  //使粒子变红  particles[i]color=Color.red  //按照正弦曲线修改粒子大小  particles[i]size=Mathf.Sin(Time.time)*0.2;  }  //将他们拷量回粒子系统  particleEmitter.particles=particles  }  ◆  var rndVelocity: Vector3  描述:一个沿着 X,Y,和 Z 的随机速度,它被添加到当前速度。  //主要沿着 x=z 轴扩展随机速度  particleEmitter.rndVelocity=Vector3(2,0.1,2);  ◆  var useWorldSpace: bool  描述:如果启用,当发射器移动的时候粒子不会移动。如果为假,当你移动发射器时,  粒子将跟随它移动。  particleEmitter.useWorldSpace=true;  ◆  var worldVelocity: Vector3  描述:粒子在世界空间的开始速度,沿着 X,Y,和 Z.  函数  ◆  function ClearParticles(): void  描述:从粒子系统中移除所有粒子。  particleEmitter.ClearParticles();  ◆  function Emit(): void  描述:发射大量粒子  根据 minEmission 和 maxEmission 属性使发射器发射随机数量的粒子,  //在 min 和 max 直接发射随机数量的粒子  particleEmitter.Emit();  ◆  function Emit(count: int): void  描述:立即发射 count 数量的粒子  //发射 10 个粒子  particleEmitter.Emit(10);  ◆  function  Emit(pos:  Vector3,  velocity:  Vector3,  size:  float,  energy:  float,  color:  color):  void  描述:以给定的参数发射一个粒子。  //在原点处发射一个粒子  //粒子的大小是 0.2 并且它将存活 2 秒  particleEmitter.Emit(Vector3.zero, Vector3 up, 0.2,2 Color yellow);  Renderer  类,继承来自 Component  所以渲染器的一般功能  一个渲染器使物体显示在屏幕上。对于任何游戏物体或组件,它的渲染器可通过一个      renderer 属性来访问。  renderer.enabled=false;//使这个物体不可见!  使用这个类来访问任何物体的渲染器,网格或粒子系统。渲染器可以被禁用使物体不  可见(参见 enabled),并且可以通过它们访问并修改材质(参考 material)。  参见:用于 meshes,particles,lines 和 trails 的渲染组件。  变量  ◆  var bounds: Bounds  描述:渲染器的包围边界(只读)  这个是在世界空间中完全包围物体的包围盒。  使用 bounds 是方便的,可以粗略地近似物体的位置和长宽高,例如,  renderer.bounds.center 通常是比 transform.position 更精确地"物体的中心",尤其是当 物体  是对称的时候。  参考 Mesh.bounds 属性,这个属性返回局部坐标中网格的边框.  //打印包围盒 x 轴最左边的点  print(renderer.bounds.min.x);  //打印包围盒 x 轴最右边的点  print(renderer.bounds.max.x);  //场景视图中绘制一个网格球体  //完全包围这个球体  function OnDrawGizmosSelected(){  //一个完全包围这个包裹盒的球体  var center=renderer.bounds.center;  var radius=renderer.bounds.extents.magnitude;  //绘制它  Gizmos.color=Color.white;  Gizmos.DrawWireSphere(center,radius);  }  参见:Bounds 类,Mesh.bounds 属性.  ◆  var castShadows: bool  描述:这个物体投射阴影?  //使物体不投射阴影  renderer.castShadows=false;  参见:receiveShadows, Light.shadows.  ◆  var enabled: bool  描述:如果启用使渲染的 3D 物体可见。  //使这个物体不可见  renderer.enabled=false;  //使这个物体可见  renderer.enabled=true;  //每秒切换一次物体的可见性  function Update(){  //当前秒是奇数还是偶数  var seconds: int=Time.time;      var oddeven=(seconds%2)==0;  //据此启用着色器  renderer.enabled=oddeven;  }  ◆  var lightmapIndex: int  描述:应用到这个渲染器的光照图的索引。  这个索引表示在 LightmapSettings 类中的光照贴图.值‐I 表示没有光照贴图被赋值,这  个是默认的。这个索引不能大于 254。  一个场景可以有多个光照贴图储存在这里,Renderer 组件可以使用这些光照贴图中的 一  个,这就使得它能够在多个物体上使用相同的材质,而这个物体可以使用不同的光照 贴图或  同一个光照贴图的不同部分。  参见:LightmapSettings 类,lightmapTilingOffset 属性,ShaderLad properties.  ◆  var lightmapTilingOffset: Vector4  描述:用于光照图的平铺和偏移。  一个场景可以有多个光照贴图存储在这里,Renderer 组件可以使用这些光照贴图中的 一  个。这就使得它能够在多个物体上使用相同的材质,而每个物体可以使用不同的光照 贴图或  同一个光照贴图的不同部分。  向量的 x 和 y 表示光照图缩放,z 和 w 表示光照图偏移.  参见:LightmapSettings 类,lightmapIndex 属性,ShaderLab properties.  ◆  var material: Material  描述:这个物体的材质。  修改 material 将只为这个物体改变材质。  如果材质被任何其他渲染器使用,这将克隆这个共享材质并从现在开始使用它。  //设置主颜色为红色  renderer.material.color=Color.red;  //每 changeInterval 秒从定义在检视面板中的  //纹理数组中改变这个渲染器的材质  var materials: Material[];  var changeInterval=0.33;  function Update(){  if(materials.length==0)//如果没有材质返回  return;  //计算材质的索引  var index: int=Time.time/changeInterval;  //对于材质数取模,这样动画可以重复  index=index%materials.length;  //赋值它到渲染器  prenderer.sharedMaterial=material[index];  }  ◆  var materials: Material[]      描述:这个物体的所有材质。  这是一个被渲染其实有的所有材质的数组。Unity 支持一个物体使用多个材质;在这种  情况下 materials 包含所有的材质。如果超过一个材质 sharedMaterial 和 material 属性 返回  第一个使用的材质。  修改任何在 materials 的材质将只改变那个物体的外观.  print("I'm using"+renderer.materials.Length+"material(s)");  ◆  var receiveShadows: bool  描述:这个物体接收阴影?  //使物体不接受阴影  renderer.receiveShadows=false;  参见:castShadows  ◆  var sharedMaterial: Material  描述:这个物体的共享材质。  修改 sharedMaterial 将改变所有使用这个材质物体的外观,并且改变的材质色绘制并  且改变的材质设置也被保存在工程中.  不建议修改由 sharedMaterial 返回的材质。如果你想修改一个渲染器的材质,使用  material。  参见:material 属性.  ◆  var sharedMaterial: Material[]  描述:这个物体的所有共享材质。  这是一个渲染其使用的所有材质的数组。Unity 支持一个物体使用多个材质;在这种  情况下 sharedMaterials 包含所有的材质。如果有超过一个材质 sharedMaterial 和 material 属  性返回第一个使用的材质。  修改任何 sharedMaterial 将改变所有使用这个材质物体的外观,并且改变的材质设置  也被保存在工程中.  不建议修改由 sharedMaterials 返回的材质。如果你想修改一个渲染器的材质,使用  material。  print("I'm using"+renderer.sharedMaterials.Length+"material(s)");  参见:material.sharedMaterial 属性.  消息传递  ◆  function OnBecameInvisible(): void  描述:OnBecameVisible 函数在这个物体对任何相机变得不可见时被调用.  这个消息被发送到所有附加在渲染器上的脚本。OnBecameVisible 和 OnBecameInvisible  可以用于只需要在物体可见时才进行的计算。  //当它不可见时禁用这个行为  function OnBecameVisible(){  enabled=false;  }  注意:当在编辑器中运行时,场景视图相机也会导致这个函数被调用。  参见:OnBecameVisible.  ◆  function OnBecamevisible(): void  描述:OnBecameVisible 函数在这个物体对任何相机变得不可见时被调用.      这个消息被发送到所有附加在渲染器上的脚本。OnBecameVisible 和 OnBecameInvisible  可以用于只需要在物体可见时才进行的计算。  //当它不可见时禁用这个行为  function OnBecameVisible(){  enabled=true;  }  注意:当在编辑器中运行时,场景视图相机也会导致这个函数被调用。  参见:OnBecameInvisible.  继承的成员  继承的变量  transform  附加到这个 GameObject 的 Transform(如果没有为 null)。  rigidbody  附加到这个 GameObject 的 Rigidbody(如果没有为 null)。  camrea  附加到这个 GameObject 的 Camera(如果没有为 null)。  light  附加到这个 GameObject 的 Light(如果没有为 null)。  animation  附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce  附加到这个 GameObject 的 ConstantForce 如果没有为 null)。  renderer  附加到这个 GameObject 的 Renderer(如果没有为 null)。  audio  附加到这个 GameObject 的 AudioSource(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView  附加到这个 GameObject 的 NetworkView(只读)。(如果没有为 null)。  guiTexture  附加到这个 GameObject 的 GUITexture(只读)。(如果没有为 null)。  collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint  附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter  附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject  这个组件所附加的游戏物体。一个组件总是附加到一个游戏物体。  tag  这个游戏物体的标签。  name  对象的名称。  hideFlags  该物体是够被隐藏,保存在场景中或被用户修改?  继承的函数  GetComponent  返回 type 类型的组件,如果游戏物体上附加了一个,如  果没有返回 null。  GetComponentInChildren  返回 type 类型的组件,这个组件位于 GameObject 或任何  它的子物体上,使用深度优先搜索。  GetComponentsInChildren  返回所以 type 类型的组件,这些组件位于 GameObject 或  任何它的子物体上。  GetComponents  返回 GameObject 上所以 type 类型的组件。  CompareTag  这个游戏物体被标签为 tag?  SendMessageUpwards  在这个游戏物体的每个 MonoBehaviour 和该行为的祖先  上调用名为 methodName 方法。  SendMessage  在这个游戏物体上的每个 MonoBehaviour 上调用  methodName 方法。  BroadcastMessage  在这个游戏物体或其任何子上的每个 MonoBehaviour 上  调用 methodName 方法。  GetInstanceID  返回该物体的实例 id。      继承的类函数  operator bool  这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体,组件或资源。  DestroyImmediate  立即销毁物体 obj。强烈建议使用 Destroy 代替。  FindObjectsOfType  返回所有类型为 type 的激活物体。  FindObjectsOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator !=  比较两个物体是否不相同。  DontDestroyOnLoad  加载新场景时确保物体 target 不被自动销毁。  LineRenderer  类,继承自 Renderer  LineRender 用于在 3D 空间中绘制浮动的线。  这个类是 line renderer 组件的脚本接口.  变量  ◆  var userWorldSpace: bool  描述:如果启用,这个线定义在世界空间中。  函数  ◆  function SetColors(start: Color, end: Color): void  描述:设置线开始和结束位置的颜色。  ◆  function SetPostition(index: int, position: Vector3): void  描述:设置线上点的位置。  参见:SetVertexCount 函数.  ◆  function SetVertexCount(count: int): void  描述:设置线段数  参见:SetPosition 函数.  ◆  function SetWidth(start: float, end: float): void  描述:设置开始和结束位置的线宽。  继承的成员  继承的变量  enabled  如果启用使渲染的 3D 物体可见。  castShadows  这个物体投射阴影?  receiveShadows  这个物体接收阴影?  material  这个物体的材质。  sharedMaterial  这个物体的共享材质。  sharedMaterials  这个物体的所有共享材质。  materials  这个物体的所有材质。  bounds  渲染器的包围边界(只读)。  lightmapIndex  应用这个渲染器的光照图的索引。  lightmapTilingOffset  用于光照图的平铺和偏移。  transform  附加到这个 GameObject 的 Transform(如果没有为 null)。  rigidbody  附加到这个 GameObject 的 Rigidbody(如果没有为 null)。  camrea  附加到这个 GameObject 的 Camera(如果没有为 null)。  light  附加到这个 GameObject 的 Light(如果没有为 null)。      animation  附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce  附加到这个 GameObject 的 ConstantForce 如果没有为 null)。  renderer  附加到这个 GameObject 的 Renderer(如果没有为 null)。  audio  附加到这个 GameObject 的 AudioSource(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView  附加到这个 GameObject 的 NetworkView(只读)。(如果没有  为 null)。  guiTexture  附加到这个 GameObject 的 GUITexture(只读)。(如果没有  为 null)。  collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint  附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter  附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject  这个组件所附加的游戏物体。一个组件总是附加到一个游戏物  体。  tag  这个游戏物体的标签。  name  对象的名称。  hideFlags  该物体是够被隐藏,保存在场景中或被用户修改?  继承的函数  GetComponent  返回 type 类型的组件,如果游戏物体上附加了一个,如  果没有返回 null。  GetComponentInChildren  返回 type 类型的组件,这个组件位于 GameObject 或任何  它的子物体上,使用深度优先搜索。  GetComponentsInChildren  返回所以 type 类型的组件,这些组件位于 GameObject 或  任何它的子物体上。  GetComponents  返回 GameObject 上所以 type 类型的组件。  CompareTag  这个游戏物体被标签为 tag?  SendMessageUpwards  在这个游戏物体的每个 MonoBehaviour 和该行为的祖先  上调用名为 methodName 方法。  SendMessage  在这个游戏物体上的每个 MonoBehaviour 上调用  methodName 方法。  BroadcastMessage  在这个 游戏物体或其任何子上的每个 MonoBehaviour 上  调用 methodName 方法。  GetInstanceID  返回该物体的实例 id。  继承的消息传递  OnBecameVisible OnBecameVisible 函数在这个物体对任何相机变得可见时被调  用.  OnBecameInvisible OnBecameInvisible 函数在这个物体对任何相机变得可见时被调  用.  继承的类函数  operator bool  这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体,组件或资源。  DestroyImmediate  立即销毁物体 obj。强烈建议使用 Destroy 代替。  FindObjectsOfType  返回所有类型为 type 的激活物体。      FindObjectsOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator !=  比较两个物体是否不相同。  DontDestroyOnLoad  加载新场景时确保物体 target 不被自动销毁。  MeshRenderer  类,继承自 Renderer  渲染自 MeshFilter 或 TextMesh 插入的网格。  继承的成员  继承的变量  enabled  如果启用使渲染的 3D 物体可见。  castShadows  这个物体投射阴影?  receiveShadows  这个物体接收阴影?  material  这个物体的材质。  sharedMaterial  这个物体的共享材质。  sharedMaterials  这个物体的所有共享材质。  materials  这个物体的所有材质。  bounds  渲染器的包围边界(只读)。  lightmapIndex  应用这个渲染器的光照图的索引。  lightmapTilingOffset  用于光照图的平铺和偏移。  transform  附加到这个 GameObject 的 Transform(如果没有为 null)。  rigidbody  附加到这个 GameObject 的 Rigidbody(如果没有为 null)。  camrea  附加到这个 GameObject 的 Camera(如果没有为 null)。  light  附加到这个 GameObject 的 Light(如果没有为 null)。  animation  附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce  附加到这个 GameObject 的 ConstantForce 如果没有为 null)。  renderer  附加到这个 GameObject 的 Renderer(如果没有为 null)。  audio  附加到这个 GameObject 的 AudioSource(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView  附加到这个 GameObject 的 NetworkView(只读)。(如果没有  为 null)。  guiTexture  附加到这个 GameObject 的 GUITexture(只读)。(如果没有  为 null)。  collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint  附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter  附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject  这个组件所附加的游戏物体。一个组件总是附加到一个游戏物  体。  tag  这个游戏物体的标签。  name  对象的名称。  hideFlags  该物体是够被隐藏,保存在场景中或被用户修改?  继承的函数  GetComponent  返回 type 类型的组件,如果游戏物体上附加了一个,如  果没有返回 null。  GetComponentInChildren  返回 type 类型的组件,这个组件位于 GameObject 或任何      它的子物体上,使用深度优先搜索。  GetComponentsInChildren  返回所以 type 类型的组件,这些组件位于 GameObject 或  任何它的子物体上。  GetComponents  返回 GameObject 上所以 type 类型的组件。  CompareTag  这个游戏物体被标签为 tag?  SendMessageUpwards  在这个游戏物体的每个 MonoBehaviour 和该行为的祖先  上调用名为 methodName 方法。  SendMessage  在这个游戏物体上的每个 MonoBehaviour 上调用  methodName 方法。  BroadcastMessage  在这个游戏物体或其任何子上的每个 MonoBehaviour 上  调用 methodName 方法。  GetInstanceID  返回该物体的实例 id。  继承的消息传递  OnBecameVisible OnBecameVisible 函数在这个物体对任何相机变得可见时被调  用.  OnBecameInvisible OnBecameInvisible 函数在这个物体对任何相机变得可见时被调  用.  继承的类函数  operator bool  这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体,组件或资源。  DestroyImmediate  立即销毁物体 obj。强烈建议使用 Destroy 代替。  FindObjectsOfType  返回所有类型为 type 的激活物体。  FindObjectsOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator !=  比较两个物体是否不相同。  DontDestroyOnLoad  加载新场景时确保物体 target 不被自动销毁。  ParticleRenderer  类,继承自 Renderer  在屏幕上渲染粒子。  这个类是 particle renderer 组件的脚本接口.  变量  ◆  var camera VelocityScale: float  描述:粒子被拉伸多少取决于 camera 的速度。  如果相机具有较大的速度,使用这个使粒子变得较大。  ◆  var lengthScale: float  描述:粒子在它的运动方向上拉伸多少。  使用这个使粒子总是比较长。  ◆  var maxParticleSize: float  描述:最大的粒子尺寸  粒子会给填充率带来严重负担。使用这个设置来确保靠近观察者时,它们不会占用过  多的性能。  ◆  var particleRenderMode: ParticleRenderMode  描述:粒子如何被绘制      ◆  var uvAnimationCycles: float  描述:设置 UV 动画循环  ◆  var uvAnimationXTile: int  描述:设置水平平铺数。  ◆  var uvAnimationYTile: int  描述:设置垂直平铺数。  ◆  var velocityScale: float  描述:粒子被拉伸多少取决于"它们移动的多快"。  使用这个使粒子随着它们的速度变长。  继承的成员  继承的变量  enabled  如果启用使渲染的 3D 物体可见。  castShadows  这个物体投射阴影?  receiveShadows  这个物体接收阴影?  material  这个物体的材质。  sharedMaterial  这个物体的共享材质。  sharedMaterials  这个物体的所有共享材质。  materials  这个物体的所有材质。  bounds  渲染器的包围边界(只读)。  lightmapIndex  应用这个渲染器的光照图的索引。  lightmapTilingOffset  用于光照图的平铺和偏移。  transform  附加到这个 GameObject 的 Transform(如果没有为 null)。  rigidbody  附加到这个 GameObject 的 Rigidbody(如果没有为 null)。  camrea  附加到这个 GameObject 的 Camera(如果没有为 null)。  light  附加到这个 GameObject 的 Light(如果没有为 null)。  animation  附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce  附加到这个 GameObject 的 ConstantForce 如果没有为 null)。  renderer  附加到这个 GameObject 的 Renderer(如果没有为 null)。  audio  附加到这个 GameObject 的 AudioSource(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView  附加到这个 GameObject 的 NetworkView(只读)。(如果没有  为 null)。  guiTexture  附加到这个 GameObject 的 GUITexture(只读)。(如果没有  为 null)。  collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint  附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter  附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject  这个组件所附加的游戏物体。一个组件总是附加到一个游戏物  体。  tag  这个游戏物体的标签。  name  对象的名称。  hideFlags  该物体是够被隐藏,保存在场景中或被用户修改?    继承的函数      GetComponent  返回 type 类型的组件,如果游戏物体上附加了一个,如  果没有返回 null。  GetComponentInChildren  返回 type 类型的组件,这个组件位于 GameObject 或任何  它的子物体上,使用深度优先搜索。  GetComponentsInChildren  返回所以 type 类型的组件,这些组件位于 GameObject 或  任何它的子物体上。  GetComponents  返回 GameObject 上所以 type 类型的组件。  CompareTag  这个游戏物体被标签为 tag?  SendMessageUpwards  在这个游戏物体的每个 MonoBehaviour 和该行为的祖先  上调用名为 methodName 方法。  SendMessage  在这个游戏物体上的每个 MonoBehaviour 上调用  methodName 方法。  BroadcastMessage  在这个游戏物体或其任何子上的每个 MonoBehaviour 上  调用 methodName 方法。  GetInstanceID  返回该物体的实例 id。  继承的消息传递  OnBecameVisible OnBecameVisible 函数在这个物体对任何相机变得可见时被调  用.  OnBecameInvisible OnBecameInvisible 函数在这个物体对任何相机变得可见时被调  用.  继承的类函数  operator bool  这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体,组件或资源。  DestroyImmediate  立即销毁物体 obj。强烈建议使用 Destroy 代替。  FindObjectsOfType  返回所有类型为 type 的激活物体。  FindObjectsOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator !=  比较两个物体是否不相同。  DontDestroyOnLoad  加载新场景时确保物体 target 不被自动销毁。  SkinnedMeshRenderer  类,继承自 Renderer  蒙皮网格过滤器  变量  ◆  var bones: Transform[]  描述:用于蒙皮网格的骨骼。  function Start(){  gameObject.AddComponent(Animation);  gameObject.AddComponent(MeshFilter);  gameObject.AddComponent(MeshRenderer);  gameObject.AddComponent(SkinnedMeshFilter);  //构建基本网格  var mesh: Mesh=new Mesh();  mesh.vertices=[Vector3(‐1,0,0), Vector3(1,0,0), Vector3(‐1,5,0), V ector3(1,5,0)];      mesh.uv=[Vector2(0,0), Vector2(1,0), Vector2(0,0), Vector2(0,1), Vector2(1,1),];  mesh.triangles=[0,1,2,1,3,2];  mesh.RecalculateNormals();  //赋值网格到 mesh filter 和 renderer  GetComponent(MeshFilter).mesh=mesh;  renderer.material=new Material(Shader.Find(" Diffuse"));  //赋值骨骼权值到网格  //使用两个骨骼,一个用于上部的顶点,一个用于下部的顶点  var weights=new BoneWeight[4];  weights[0].boneIndex0=0;  weights[0].weight0=1;  weights[1].boneIndex0=0;  weights[1].weight0=1;  weights[2].boneIndex0=1;  weights[2].weight0=1;  weights[3].boneIndex0=1;  weights[3].weight0=1;  mesh.boneWeights=weights;  //创建骨骼变换并绑定姿势  //一个骨骼在顶部一个在底部  var bones = new Transform[2];  var bindPoses = new Matrix4x4[2];  bones[0] = new GameObject("Lower").transform;  bones[0].parent = transform;  //设置相对于父的位置  bones[0].localRotation = Quaternion.identity;  bones[0].localPosition = Vector3.zero;  //绑定姿势是骨骼的逆变换矩阵  //在这种情况下我们也要使这个矩阵是相对与根的  //这样我们就能够随意移动根物体了  bindPoses[0] = bones[0].worldToLocalMatrix * transform.localToWorldMatrix;  bones[1] = new GameObject("Upper").transform;  bones[1].parent = transform;  //设置相对于父的位置  bones[1].localRotation = Quaternion.identity;  bones[1].localPosition = Vector3(0,5,0);  //绑定姿势是骨骼的逆变换矩阵  //在这种情况下我们也要使这个矩阵是相对与根的  //这样我们就能够随意移动根物体了  bindPoses[1] = bones[1].worldToLocalMatrix * transform.localToWorldMatrix;  //赋值骨骼并绑定姿势  GetComponent(SkinnedMeshFilter).bones = bones;  GetComponent(SkinnedMeshFilter).bindPoses = bindPoses;  GetComponent(SkinnedMeshFilter).mesh = mesh;      //赋值一个简单的挥动动画到底部的骨骼  var curve = new AnimationCurve();  curve.keys = [new Keyframe(0,0,0,0), new Keyframe(1,3,0,0), new Keyframe(2,0.0,0,0)],  //使用曲线创建剪辑 e  var clip = new AniamtionClip();  clip.SetCurve("Lower", Transform, "m_LocalPosition.z", curve);  //添加并播放剪辑  animation.AddClip(clip, "test");  aniamtion.Play("test"),  }  @ script RequireComponent(Animation)  ◆  var quality: SkinQuality  描述:影响单个顶点的最大骨骼数量  renderer.quality = SkinQuality.Bone2;  ◆  var sharedMesh: Mesh  描述:用于蒙皮的网格  ◆  var skinNormals: bool  描述:如果启用,几何体法线将随着骨骼动画更新。  参见:Skinned Mesh Renderer component.  ◆  var updateWhenOffscreen: bool  描述:如果启用,蒙皮网格将在离屏的时候更新。如果禁用,也将禁用动画更新。  参见:Skinned Mesh Renderer component.  继承的成员  继承的变量  enabled  如果启用使渲染的 3D 物体可见。  castShadows  这个物体投射阴影?  receiveShadows  这个物体接收阴影?  material  这个物体的材质。  sharedMaterial  这个物体的共享材质。  sharedMaterials  这个物体的所有共享材质。  materials  这个物体的所有材质。  bounds  渲染器的包围边界(只读)。  lightmapIndex  应用这个渲染器的光照图的索引。  lightmapTilingOffset  用于光照图的平铺和偏移。  transform  附加到这个 GameObject 的 Transform(如果没有为 null)。  rigidbody  附加到这个 GameObject 的 Rigidbody(如果没有为 null)。  camrea  附加 到这个 GameObject 的 Camera(如果没有为 null)。  light  附加到这个 GameObject 的 Light(如果没有为 null)。  animation  附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce  附加到这个 GameObject 的 ConstantForce 如果没有为 null)。  renderer  附加到这个 GameObject 的 Renderer(如果没有为 null)。  audio  附加到这个 GameObject 的 AudioSource(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView  附加到这个 GameObject 的 NetworkView(只读)。(如果没有      为 null)。  guiTexture  附加到这个 GameObject 的 GUITexture(只读)。(如果没有  为 null)。  collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint  附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter  附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject  这个组件所附加的游戏物体。一个组件总是附加到一个游戏物  体。  tag  这个游戏物体的标签。  name  对象的名称。  hideFlags  该物体是够被隐藏,保存在场景中或被用户修改?  继承的函数  GetComponent  返回 type 类型的组件,如果游戏物体上附加了一个,如  果没有返回 null。  GetComponentInChildren  返回 type 类型的组件,这个组件位于 GameObject 或任何  它的子物体上,使用深度优先搜索。  GetComponentsInChildren  返回所以 type 类型的组件,这些组件位于 GameObject 或  描述:tr ail 在出生点处的宽度。  参见:endWidth 变量.  ◆  var time: float  描述:尾迹多长时间会消失。  继承的成员  继承的变量  enabled  如果启用使渲染的 3D 物体可见。  castShadows  这个物体投射阴影?  receiveShadows  这个物体接收阴影?  material  这个物体的材质。  sharedMaterial  这个物体的共享材质。  sharedMaterials  这个物体的所有共享材质。  materials  这个物体的所有材质。  bounds  渲染器的包围边界(只读)。  lightmapIndex  应用这个渲染器的光照图的索引。  lightmapTilingOffset  用于光照图的平铺和偏移。  transform  附加到这个 GameObject 的 Transform(如果没有为 null)。  rigidbody  附加到这个 GameObject 的 Rigidbody(如果没有为 null)。  camrea  附加到这个 GameObject 的 Camera(如果没有为 null)。  light  附加到这个 GameObject 的 Light(如果没有为 null)。  animation  附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce  附加到这个 GameObject 的 ConstantForce 如果没有为 null)。  renderer  附加到这个 GameObject 的 Renderer(如果没有为 null)。  audio  附加到这个 GameObject 的 AudioSource(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView  附加到这个 GameObject 的 NetworkView(只读)。(如果没有  为 null)。      guiTexture  附加到这个 GameObject 的 GUITexture(只读)。(如果没有  为 null)。  collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint  附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter  附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject  这个组件所附加的游戏物体。一个组件总是附加到一个游戏物  体。  tag  这个游戏物体的标签。  name  对象的名称。  hideFlags  该物体是够被隐藏,保存在场景中或被用户修改?  继承的函数  GetComponent  返回 type 类型的组件,如果游戏物体上附加了一个,如  果没有返回 null。  GetComponentInChildren  返回 type 类型的组件,这个组件位于 GameObject 或任何  它的子物体上,使用深度优先搜索。  GetComponentsInChildren  返回所以 type 类型的组件,这些组件位于 GameObject 或  任何它的子物体上。  GetComponents  返回 GameObject 上所以 type 类型的组件。  CompareTag  这个游戏物体被标签为 tag?  SendMessageUpwards  在这个游戏物体的每个 MonoBehaviour 和该行为的祖先  上调用名为 methodName 方法。  SendMessage  在这个游戏物体上的每个 MonoBehaviour 上调用  methodName 方法。  BroadcastMessage  在这个游戏物体或其任何子上的每个 MonoBehaviour 上  调用 methodName 方法。  GetInstanceID  返回该物体的实例 id。  继承的消息传递  OnBecameVisible OnBecameVisible 函数在这个物体对任何相机变得可见时被调  用.  OnBecameInvisible OnBecameInvisible 函数在这个物体对任何相机变得可见时被调  用.  继承的类函数  operator bool  这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体,组件或资源。  DestroyImmediate  立即销毁物体 obj。强烈建议使用 Destroy 代替。  FindObjectsOfType  返回所有类型为 type 的激活物体。  FindObjectsOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator !=  比较两个物体是否不相同。  DontDestroyOnLoad  加载新场景时确保物体 target 不被自动销毁。  Rigidbody  类,继承自 Component  通过物理模拟控制一个物体的位置。      Rigidbody 组件控制对象的位置 ‐ 它使物体在重力影响下下落,并可计算物体如何响  应碰撞。  当操作刚体参数的时候,你应该在 FixedUpdate 函数中使用它,物理模拟以离散的时间  步执行。FixedUpdate 函数在每一步之前被立即调用。  需要注意的事是何时使用刚体:  1.  如果你的模拟看起来像慢动作并且不真实:  这是缩放的问题。如果你的游戏世界非常大,所以的东西将显示的非常慢,确保所有  你的模型有审视世界的大小。例如,一个汽车应该有 4 米长,一个角色 2 米高。物体 以相  同的加速度下落,不论它大还是小,重或是轻。如果你的游戏时间有较大的缩放,物 体将  还是以相同的加速度下落。但是因为物体都比较大,所以物体的下落显得比较慢。  变量  ◆  var angularDrag: float  描述:物体的角阻力。  角阻力可以用来减缓物体的旋转。阻力越大,旋转减缓的越快。  rigidbody.angularDrag=10;  ◆  var angularVelocity: Vector3  描述:刚体的角速度向量  在大多数情况下,你不应该直接修改它,以为这会导致不真实的结果。  //根据旋转的速度改变材质  var fastWheelMaterial: Material;  var slowWheelMaterial: Material;  function Update(){  if(rigidbody.angularVelocity.magnitude<5){  renderer.sharedMaterial=slowWheelMaterial;  }  else  {  renderer.sharedMaterial=fastWheelMaterial;  }  }  ◆  var cen terOfMass: Vector3  描述:相对于变换,原点的重心。  如果你不从脚边中设置重心,它将从所有附加到刚体的碰撞器上自动计算,当模拟汽 车  时,设置重心是非常有用的,可以使它更加稳定。具有较低重心的汽车不太可能倾翻。  rigidbody.centerOfMass=Vector3(0,‐2,0);  ◆  var detectCollisions: bool  描述:碰撞检测应该启用?  (默认总是启用的)  禁用碰撞检测是有用的,如果有一个人偶,它被设置为运动学并且你想避免刚体上大 量  的碰撞检测计算,detectCollisions 是非序列化的,也就是说,它不会显示在检视面板中 并且      当在场景中实例化或保存这个刚体时,它将不被保存。  ///让动画控制这个刚体并忽略碰撞  rigidbody.isKinematic=true;  rigidbody.detectCollision=false;  ///让刚体使用空,检测碰撞  rigidbody.isKinematic=false;  rigidbody.detectCollision=true;  ◆  var drag: float  描述:物体的阻力  阻力可用来减缓物体的速度。阻力越大,旋转减缓的越快。  function OpenParachute(){  rigidbody.drag=20;  }  function Update(){  if(Input.GetButton("Space"))  {  OpenParachute();  }  }  ◆  var freezeRotation: bool  描述:控制物理是个改变物体的旋转。  如果 freezeRotation 被启用,旋转不会被物体模拟修改。这对于创建第一人称射击时有  用的,因为玩家需要使用鼠标完全控制旋转。  //冻结旋转  rigidbody.freezeRotation=true;  ◆  var intertiaTensor: Vector3  描述:相对于重心的质量对角惯性张量。  惯性张量是被 intertiaTensorRotation 旋转的。如果你不从脚本中设置惯性张量,它将从  所以附加到刚体的碰撞器上自动计算。  //长砖的惯性张量  rigidbody.intertiaTensor=Vector3(5,1,1);  ◆  var intertiaTensorRotation: Quaternion  描述:惯性张量旋转。  如果你不从脚本中设置惯性张量旋转,它将从所有附加到刚体的碰撞器上自动计算。  //重置惯性张量为变换的坐标系统  rigidbody.intertiaTensorRotation=Quaternion,identity;  ◆  var interpolation: RigidbodyInterpolation  描述:插值允许你以固定的帧率平滑物理运行效果。  默认,插值是关闭的。普通的刚体插值用于玩家角色。物理以离散的时间步运行,而  显卡以可变的帧率渲染。这可能导致物体的抖动,因为物理和显卡不完全同步。这个 效果  是细微的但是通常会在玩家角色上看到,尤其是如果相机跟随主角色。建议为主角色 打开  插值,但是禁用其他物体上的插值。      //是刚体插值  rigidbody.interpolation=RigidbodyInterpolation.Interpolate;  ◆  var isKinematic: bool  描述:控制物理是够影响这个刚体。  如果 isKinematic 启用,力,碰撞和关节将不会再影响这个刚体。刚体通过改变  transform.postion 由动画或脚本的完全控制。动力学刚体也会通过碰撞或关机影响其他 刚体  的运动。例如,可以使用关节链接一个普通的刚体到动力学刚体,现在这个刚体受到 动力学  刚体运动的约束。动力学刚体也被用于制作角色,这个角色通常是由动画驱动的,但 是在  某些事件中可以通过设置 isKinematic 为 false 来讲它快速转化为一个人偶。  //不让刚体受到物理的影响!  rigidbody.isKinematic=true;  ◆  var mass: float  描述:刚体的质量  你应该保持质量接近 0.1 并且不要超过 10。大的质量会使物理模拟不稳定。  当碰撞时较大质量的物体推动较小质量的物体。考虑一个大卡车,装上一个小汽车。  一个常见的错误时重的物体比轻的物体下落的快。这是不对的,速度依赖于重力和阻  力。  rigidbody.mass=0.5;  ◆  var maxAngularVelocity: float  描述:刚体的最大角速度向量(默认 7)范围{0,infinity}  刚体的角速度最大为 maxAngularVelocity 以避免高速旋转物体的数值不稳定性。因为  这也许会阻止企图快速旋转的物体,例如车轮,你可以使用逐刚体重载该值。  rigidbody.maxAngularVelocity=10;  ◆  var position: Vector3  描述:刚体的位置  这个与设置 transfor.position 相同,然而 position 只在物理的最后一步被应用到变换。  如果你想连续移动一个刚体或运动学刚体,使用 MovePosition 和 MoveRotation。  function Start(){  rigidbody.position=Vectorr3.zero;  }  ◆  var rotation: Quaternion  描述:刚体的旋转  这个与设置 transform.rotation 相同,然而 rotation 只在物理的最后被应用到变换。如 果  你想连续移动一个刚体或运动学刚体,使用 MovePosition 和 MoveRotation。  function Start(){  rigidbody.rotation=Quaternion.identity;  }  ◆  var sleepAngularVelocity: float  描述:角速度,低于该值的物体将开始休眠。(默认 0.14)范围{0, infinity}  参考 Rigidbody Sleeping 获取更多信息。      ◆  var sleepVelocity: float  描述:线行速度,低于该值的物体将开始休眠。(默认 0.14)范围{0, infinity}  参考 Rigidbody Sleeping 获取更多信息。  Rigidbody.sleepingVelocity=0.1;  ◆  var solverIterationCount: int  描述:允许你覆盖每个刚体的求解迭代数。  solverIterationCount 决定关节和接触点如何精确地计算。如果出现链接的物体震荡和行  为怪异,为 solver Iteration Count 设置一个较高的值将改善他们的稳定性。  rigidbody.solverIterationCount=10;  ◆  var useConeFriction: bool  描述:用于该钢铁的立锥摩擦力  这确保所有接触包含的行为将使用锥摩擦力。这对于性能有负面影响。默认这个是关  闭的,一个更快和更好的被称为金字塔摩擦的近似方法被使用。在大多数情况下建议 保留  这个值为关闭。  ◆  var useGravity: bool  描述:控制重力是否影响这个刚体  如果设置为假刚体的行为会像是在外层空间。  在所有进入这个碰撞器的所有刚体上禁用重力  function OnTriggerEnter(other: Collider)  {  if(other.attachedRigidbody)  {  other.attachedRigidbody.useGravity=false;  }  }  //启用时将这个碰撞器改变为一个触发器  collider.isTrigger=true;  ◆  var velocity: Vector3  描述:刚体的速度向量  在大多数情况下,你不应该直接修改速度,因为这会导致不真实的结果。不要再每个  物体步设置物体的速度,这将导致不真实的物理模拟。一个典型的例子是,当你在 FPS 中  使用跳的时候,改变速度,因为你想立即改变速度。  function FixedUpdate(){  if(Input.GetButtonDown("Jump")){  rigidbody.velocity.y=10;}  }  ◆  var worldCenterOfMass: Vector3  描述:世界空间中刚体的质量重心(只读)。  函数  ◆  function AddExplosionForce (explosionForce : float, explosionPosition : Vector3,  explosionRadius : float, upwardsModifier : float = 0.0F, mode : ForceMode =   ForceMode.Force): void      描述:应用一个力到刚体来模拟爆炸效果。爆炸力将随着到刚体的距离线形衰减。  这个功能也对人偶有很好的作用。如果 radius 为 0,将使用全部的力不论 position 距  离刚体多远.upwardModifier 就像从物体下方使用这个力.  这个是非常有用的,以为爆 炸  将向上抛这个物体而不是将它们推向一边,这个看起来非常的酷。值 2 将应用一个力 在低  于物体 2 米处,然而不会改变实际的爆炸位置. explosionPositon 是爆炸力被应用的位置.  explosionRadius 是爆炸的半径,超过 explosionRadius 距离的刚体将不会受到影响.  var radius=5.0;  var power=10.0;  function Start(){  //应用一个爆炸力到所有附加的刚体上  var explosionPos=transform.position;  var colliders: Collider[]=Physics.OverlapSphere(explosionPos, radius);  for (var hit in colliders){  if(!hit)  continue;  if(hit.rigidbody){  hit.rigidbody.AddExplosionForce(power.explosionPos, radius, 3.0);  }  }  }  ◆  function AddForce(force: Vector3, mo de: ForceMode=ForceMode.Force): void     描述:为刚体添加一个力。作为结果刚体将开始移动。  //在全局坐标空间中添加一个向上的力  function FixedUpdate(){  rigidbody.AddForce(Vector3.up*10);  }  ◆  function AddForce(x: float, y: float, z: float, mode: ForceMode=ForceMode.Force): void  描述:为刚体添加一个力,作为结果刚体将开始移动。  //全局坐标空间中添加一个向上的力  function FixedUpdate(){  rigidbody.AddForce(0,10,0);  }  如果你想在多针帧中使用力,你应该在 FixedUpdate 中而不是 Update 使用使用它。  ◆  function AddForceAtPosition(force: Vector3, position: Vector3, mode: ForceMode=  ForceMode.Force): void  描述:在位置 position 处使用 force。这个将应用力矩和力到这个物体上。  对于真的的效果 position 应该近似地在刚体表面的范围内.  这个最常用于爆炸。当使用  爆炸的时候最好应用力到多帧而不是一帧中。主要当 position 远离刚体的中心时,使用 的力  矩阵将非常不真实。  function ApplyForce(body: Rigidbody){      direction=body.transform.position‐transform.position;  body.AddForceAtPosition(direction.normalized, transform.position);  }  ◆  function AddRelativeForce(force: Vector3, mode: ForceMode=ForceMode.Force): void  描述:相对于它的坐标系统添加一个力到刚体。  作为结果刚体将开始移动。  //沿着自身 z 轴向前移动刚体  function FixedUpadate(){  rigidbody.AddRelativeForce(Vector3.forward*10);  }  ◆  function AddRelativeForce(x: float, y: float, z: float, mode: ForceMode=  ForceMode.Force): void  描述:相对于它的坐标系统添加一个力到刚体。  作为结果刚体将开始移动。  //沿着自身 z 轴向前移动刚体  function FixedUpadate(){  rigidbody.AddRelativeForce(0,0,10);  }  如果你想在多帧中使用力,你应该在 FixedUpdate 中而不是 Update 使用使用它。  ◆  function AddRelativeTorque(torque: Vector3, mode: ForceMode=ForceMode.Force):   void  描述:相对于刚体自身的坐标系统,添加一个力矩到刚体。  刚体将绕着 torque 轴旋转。  //绕着全局 y 轴旋转刚体  function FixedUpadate(){  rigidbody.AddRelativeForce(Vector3.up*10);}  ◆  function AddRelativeTorque(x: float, y: float, z: float, mode: ForceMode=  ForceMode.Force): void  描述:相对于刚体自身的坐标系统,添加一个力矩到刚体。  刚体将绕着 torque 轴旋转。  //绕着自身 y 轴旋转刚体  function FixedUpadate(){  rigidbody.AddRelativeForce(0,10,0);}  如果你想在多帧中使用力,你应该在 FixedUpdate 中而不是 Update 使用使用它。  ◆  function AddTorque((torque: Vector3, mode: ForceMode=ForceMode.Force): void  描述:为刚体添加一个力矩。  刚体将绕着 torque 轴旋转。  //绕着全局 y 轴旋转刚体  function FixedUpadate(){  rigidbody.AddTorque(Vector3.up*10);  }  如果你想在多帧中使用力,你应该在 FixedUpdate 中而不是 Update 使用使用它。  ◆  function AddTorque(x: float, y: float, z: float, mode: ForceMode=ForceMode.Force):   void      描述:为刚体添加一个力矩。  刚体将绕着 torque 轴旋转。  /绕着全局 y 轴旋转到刚体  function FixedUpadate(){  rigidbody.AddTorque(0,10,0);  }  ◆  function ClosestPointOnBounds(position: Vector3): Vector3  描述:到碰撞器包围盒上最近点。  这可以用来计算受到爆炸伤害时的伤害点数。或计算作用到刚体表面上一个点的爆炸  力。  var hitPoints=10.0;  function ApplyHitPoints(explostionPos: Vector3, radius: float){  //从爆炸位置到刚体表面的距离  var ClosestPoint=rigidbody.ClosestPointOnBounds(explosionPos);  var distance=Vector3f.Distance(closestPoint, explosionPos);  //伤害点数随着到伤害的距离而降低  var damage=1.0‐Mathf.Cllamp01(distance/radius);  //这是我们要用的最终伤害点数。  10 at maximum  damage*=10;  //应用伤害  hitPoints=damage;  }  ◆  function GetPointVelocity(worldPoint: Vector3): Vector3  描述:刚体在世界空间中 worldPoint 点处的速度.  GetPointVelocity 在计算速度的时候将考虑刚体的 angularVelocity。  //打印车轮的速度  point=transform.InverseTransformPoint(Vector3(0,‐2,0));  var velocity=rigidbody.GetPointVelocity(point);  print(velocity.magnitude);  ◆  function GetRelativeVelocity(relativePoint: Vector3): Vector3  描述:相对于刚体在 relativePoint 处的速度。  GetRelativePointVelocity 在计算速度的时候将考虑刚体的 angularVelocity。  //打印车轮的速度  var relativeVelocity=rigidbody.GetRelativePointVelocity(Vector3(0,‐2,0));  print(relativeVelocity.magnitude);  ◆  function IsSleeping(): bool  描述:刚体处于休眠?  参考 Rigidbody Sleeping 获取更多信息。  if(rigidbody.IsSleeping())  print("Sleeping");  ◆  function MovePosition(position: Vector3): void  描述:移动刚体到 position.  对于运动学刚体,它基于刚体的运动应用摩擦力。这个让你模拟刚体位于移动平台之  上的情况。如果你想其他的刚体与运动学刚体交互,你需要在 FixedUpdate 函数中移动     它。  var speed=Vector3(3,0,0);  function FixedUpdate()  {  rigidbody.MovePosition(rigidbody.position+speed*Time.deltaTime);  }  ◆  function MoveRotation(rot: Quaternion): void  描述:旋转刚体到 rotation.  对于运动学刚体,它基于刚体的运动应用摩擦力。这个让你模拟刚体位于移动/旋转平  台之上的情况。如果你想其他的刚体与运动学刚体交互,你需要在 FixedUpdate 函数中 移  动它。  var eulerAngleVelocity=Vector3(0,100,0);  function FixedUpdate()  {  var deltaRotation=Quaternion.Euler(eulerAngleVelocity*Time.deltaTime);  rigidbody.MoveRotation(rigidbody.rotation*deltaRotation);  }  ◆  function SetDensity(density: float): void  描述:基于附加的刚体和固定的密度设置质量。  这个可以用来设置质量为随着碰撞器的尺寸而缩放。  rigidbody.SetDensity(1.5);  ◆  function Sleep(): void  描述:强制刚体休眠至少一帧  一个常见的使用是从 Awake 中调用它以便使刚体在启用的时候休眠。参考 Rigidbody  Sleeping 获取更多信息。  rigidbody.Sleeping()  ◆  function WakeUp(): void  描述:强制刚体苏醒  rigidbody.WakeUp()  参考 Rigidbody Sleeping 获取更多信息。  消息传递  ◆  function OnCollisionEnter(collisionInfo: Collision): void  描述:当这个碰撞器/刚体开始碰撞另一个刚体/碰撞器时 OnCollisionEnter 被调用。  相对于 OnTriggerEnter,OnCollisionEnter 传递 Collision 类而不是 Collider.Collision 类包  含接触点,碰撞速度等细细。如果在函数中不使用 collisionInfo,省 略 collisionInfo 参数 以避  免不必要的计算。主要如果碰撞器附加了一个非动力刚体,也只发送碰撞事件。  function OnCollisionEnter(collision:Collision){  //调试绘制所以的接触点和法线  for(var contact:ContactPoint in collision.contacts){  Debug.DrawRay(contact.point, contact.normal, Color.white);  }  //如果碰撞物体有较大的冲劲就播放声音      if(collision.relativeVelocity.magnitude>2)  audio.Play();  }  //一枚手榴弹  //‐在击中一个表面时初始化一个爆炸预设  //‐然后销毁它  var explosionPrefab: Transform;  function OnCollisionEnter(collision: Collision){  //旋转这个物体使 y 轴面向沿着表面法线的方向  var contact‐collision.contacts[0];  var rot=Quaternion.FormToRotation(Vector3.up, contact.mormal);  var pos=contact.point;  Instantiate(explosionPrefab, pos, rot);  //销毁这个发射物  Destroy(gameObject);  }  ◆  function OnCollisionExit(collisionInfo: Collision): void  描述:当这个碰撞器/刚体停止碰撞另一个刚体/碰撞器时 OnCollisionExit 被调用。  相对于 OnTriggerExit,OnCollisionExit 传递 Collision 类而不是 Collider.Collision 类包含  接触点,碰撞速度等细细。如果在函数中不使用 collisionInfo,省 略 collisionInfo 参数以 避免  不必要的计算。主要如果碰撞器附加了一个非动力刚体,也只发送碰撞事件。  function OnCollisionExit(collision:Collision){  print("No longer in contact with "+collisionInfo.transform.name);  }  ◆  function OnCollisionStay(collisionInfo: Collision): void  描述:对于每个与刚体/碰撞器相触碰的碰撞器/刚体,OnCollisionStay 将在每一帧中被 调  用。  相对于 OnTriggerStay,OnCollisionStay 传递 Collision 类而不是 Collider.Collision 类包含  接触点,碰撞速度等细细。如果在函数中不使用 collisionInfo,省 略 collisionInfo 参数以 避免  不必要的计算。主要如果碰撞器附加了一个非动力刚体,也只发送碰撞事件。  function OnCollisionStay(collision:Collision){  function OnCollisionEnter(collision:Collision){  //调试绘制所以的接触点和法线  for(var contact:ContactPoint in collision.contacts){  Debug.DrawRay(contact.point, contact.normal, Color.white);  }  继承的成员  继承的变量  transform  附加到这个 GameObject 的 Transform(如果没有为 null)。  rigidbody  附加到这个 GameObject 的 Rigidbody(如果没有为 null)。  camrea  附加到这个 GameObject 的 Camera(如果没有为 null)。      light  附加到这个 GameObject 的 Light(如果没有为 null)。  animation  附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce  附加到这个 GameObject 的 ConstantForce 如果没有为 null)。  renderer  附加到这个 GameObject 的 Renderer(如果没有为 null)。  audio  附加到这个 GameObject 的 AudioSource(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView  附加到这个 GameObject 的 NetworkView(只读)。(如果没有为 null)。  guiTexture  附加到这个 GameObject 的 GUITexture(只读)。(如果没有为 null)。  collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint  附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter  附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject  这个组件所附加的游戏物体。一个组件总是附加到一个游戏物体。  tag  这个游戏物体的标签。  name  对象的名称。  hideFlags  该物体是够被隐藏,保存在场景中或被用户修改?  继承的函数  GetComponent  返回 type 类型的组件,如果游戏物体上附加了一个,如  果没有返回 null。  GetComponentInChildren  返回 type 类型的组件,这个组件位于 GameObject 或任何  它的子物体上,使用深度优先搜索。  GetComponentsInChildren  返回所以 type 类型的组件,这些组件位于 GameObject 或  任何它的子物体上。  GetComponents  返回 GameObject 上所以 type 类型的组件。  CompareTag  这个游戏物体被标签为 tag?  SendMessageUpwards  在这个游戏物体的每个 MonoBehaviour 和该行为的祖先  上调用名为 methodName 方法。  SendMessage  在这个游戏物体上的每个 MonoBehaviour 上调用  methodName 方法。  BroadcastMessage  在这个游戏物体或其任何子上的每个 MonoBehaviour 上  调用 methodName 方法。  GetInstanceID  返回该物体的实例 id。  继承的类函数  operator bool  这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体,组件或资源。  DestroyImmediate  立即销毁物体 obj。强烈建议使用 Destroy 代替。  FindObjectsOfType  返回所有类型为 type 的激活物体。     FindObjectsOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator !=  比较两个物体是否不相同。  DontDestroyOnLoad  加载新场景时确保物体 target 不被自动销毁。  TextMesh  类,继承自 Component      text mesh component 的脚本接口  参见:text mesh component.  变量  ◆  var font: Font  描述:使用的 Font.  参见:text mesh component.  //设置附加的文本网格的文本  var newFont: Font;  GetComponent(TextMesh).font=newFont;  ◆  var font: string  描述:显示的文本.  参见:text mesh component.  //设置附加的文本网格的文本  GetComponent(TextMesh).text="Hello World";  继承的成员  继承的变量  transform  附加到这个 GameObject 的 Transform(如果没有为 null)。  rigidbody  附加到这个 GameObject 的 Rigidbody(如果没有为 null)。  camrea  附加到这个 GameObject 的 Camera(如果没有为 null)。  light  附加到这个 GameObject 的 Light(如果没有为 null)。  animation  附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce  附加到这个 GameObject 的 ConstantForce 如果没有为 null)。  renderer  附加到这个 GameObject 的 Renderer(如果没有为 null)。  audio  附加到这个 GameObject 的 AudioSource(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView  附加到这个 GameObject 的 NetworkView(只读)。(如果没有为 null)。  guiTexture  附加到这个 GameObject 的 GUITexture(只读)。(如果没有为 null)。  collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint  附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter  附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject  这个组件所附加的游戏物体。一个组件总是附加到一个游戏物体。  tag  这个游戏物体的标签。  name  对象的名称。  hideFlags  该物体是够被隐藏,保存在场景中或被用户修改?  继承的函数  GetComponent  返回 type 类型的组件,如果游戏物体上附加了一个,如  果没有返回 null。  GetComponentInChildren  返回 type 类型的组件,这个组件位于 GameObject 或任何  它的子物体上,使用深度优先搜索。  GetComponentsInChildren  返回所以 type 类型的组件,这些组件位于 GameObject 或  任何它的子物体上。  GetComponents  返回 GameObject 上所以 type 类型的组件。  CompareTag  这个游戏物体被标签为 tag?  SendMessageUpwards  在这个游戏物体的每个 MonoBehaviour 和该行为的祖先      上调用名为 methodName 方法。  SendMessage  在这个游戏物体上的每个 MonoBehaviour 上调用  methodName 方法。  BroadcastMessage  在这个游戏物体或其任何子上的每个 MonoBehaviour 上  调用 methodName 方法。  GetInstanceID  返回该物体的实例 id。  继承的类函数  operator bool  这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体,组件或资源。  DestroyImmediate  立即销毁物体 obj。强烈建议使用 Destroy 代替。  FindObjectsOfType  返回所有类型为 type 的激活物体。  FindObjectsOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator !=  比较两个物体是否不相同。  DontDestroyOnLoad  加载新场景时确保物体 target 不被自动销毁。  Transform  类,继承自 Behaviour,可计数  物体的位置,旋转和缩放。  场景中的每个物体都有一个变换。这个用来存储并操作物体的位置,旋转和缩放,每  个变换可以有一个父,它允许你层次地应用位置,旋转和缩放。这个是可以在层次面 板中  看到的层次,它们也支持计数器,这样你可以循环所以使用的子:  //变量的所有子像是移动 10 个单位!  for(var child: Transform in transform){  child.position+=Vector3.up*10.0;  }  参见:The component reference, Physics 类.  变量  ◆  var childCount: int  描述:变化的子的数量。  //打印子物体的数量  print(transform.childCount);  ◆  var eulerAngles: Vector3  描述:旋转作为欧拉角度。  仅仅使用这个变量来读取和设置绝对值角度。不要递增它们,因为当该角度超过 360  度时它将失败。使用 Transform.Rotate 代替.  //打印绕着全局 x 轴的旋转角度  print(transform.eulerAngles.x);  //打印绕着全局 y 轴的旋转角度  print(transform.eulerAngles.y);  //打印绕着全局 z 轴的旋转角度  print(transform.eulerAngles.z);  //使用 eulerAngles 赋值绝对旋转      var yRotation=5.0;  function Update()  {  yRotation+=Input.GetAxis("Horizontal");  transform.eulerAngles=Vector3(10,yRoation,0);  }  不要分别设置 eulerAngles 轴的(例如 eulerAngles.x=10)以为这将导致偏移和不期望的  旋转。当设置它们为新值的时候,同事全部设置它们,如上所示。Unity 将转化储存在  Transfor.rotation 中的角度。  ◆  var forward: Vector3  描述:在世界空间中变换的蓝色轴。  //设置刚体的速度为  //沿着变换的蓝色轴  rigidbody.velocity=transform.forward*10;  //计算 target 变换和这个物体之间的角度  var angleBetween=0.0;  var target: Transform;  function Update()  {  var targetDir=target.position‐transform.position  angleBetween=Vector3.Angle(transform.forward, targetDir);  }  ◆  var localEulerAngles: Vector3  描述:相对于父变换旋转的欧拉角度。  仅仅使用这个变量来读取和设置绝对值角度。不要递增它们,因为当该角度超过 360  度时它将失败。使用 Transform.Rotate 代替.  //打印绕着父 x 轴的旋转  print(transform.localEulerAngles.x);  //打印绕着父 y 轴的旋转  print(transform.localEulerAngles.y);  //打印绕着父 z 轴的旋转  print(transform.localEulerAngles.z);  Unity 将自动转化存储在 Transform.localRotation 中的角度。  ◆  var localPosition: Vector3  描述:该变换的位置相对于父变换。如果变换没有父,它与 Transform.position 相同。  //移动物体到与父物体相同的位置  Transform.localPosition=Vector3(0,0,0);  //获取相对于父位置的 y 组件  //并打印它到控制台  print(transform.localPosition.y);  注意,当计算世界位置时父变换的世界旋转和缩放将被应用到本地位置。这就是说  Transform.position 的 1 单位总是 1 单位。Transform.localPosition 的 1 单位将受到所有 父缩放  的影响。      ◆  var localRotation: Quaternion  描述:该变换相对于父变换旋转的旋转。  Unity 内部以四元组方式存储旋转。使用 Transform.Rotate 旋转物体.  使用  Transform.localEulerAngles 来修改旋转的欧拉角。  //设置旋转与父相同  Transform.localRotation=Quaternion.identity;  ◆  var localScale: Vector3  描述:该变换相对于父的缩放。  Transform.localScale.x+=0.1;//  物体加宽 0.1  ◆  var localToWorldMatrix: Matrix4x4  描述:从本地空间到世界空间的变换矩阵(只读)。  如果你对使用矩阵进行坐标变换不熟悉那么使用 Transform.TransformPoint 代替.  ◆  var lossyScale: Vector3  描述:对象的全局缩放。  请注意,如果有一个父变换,该变化具有缩放并且它的子被随意缩放,那么该缩放是 有  误差的。因此缩放不能正确地表示在一个 3 组件向量中,而是一个 3x3 矩阵。这样的 表示  是非常麻烦的,而且 lossyScale 是一个方便的属性,它尽量匹配实际世界缩放。如果你 的  物体部没有偏差,这个值将是完全正确的。如果包含偏差,差别也不回太大。  print(transform.lossyScale);  ◆  var parent: Transform  描述:变换的父  改变父将修改相对父的位置,缩放和旋转但是世界空间的位置,旋转和缩放时相同的,  //通过使相机成为该物体的子  //使它跟随这个物体.  //获取相机的变换  var cameraTransform=Camera main.transform;  //使它成为当前物体的子  cameraTransform.parent=transform;  //放置在当前物体之后  cameraTransform.localPosition=Vector3.forward*5;  //使它指向这个物体  cameraTransform.LookAt(transform);  //从变换的父上断开  transform.parent=mull;  ◆  var position: Vector3  描述:在世界空间中变换的位置.  //移动物体到(0,0,0)  transform.position=Vector3(0,0,0);  //打印位置的 x 组件到控制台  print(transform.position.x);  ◆  var right: Vector3      描述:在世界空间中变换的红色轴.  //设置刚体的速度为  //沿着变换的绿色轴  rigidbody.velocity=transform.right*10;  ◆  var root: Transform  描述:返回层次最顶端的变换。  (这个永远不会为 Null,如果这个 Transform 没有父它返回它自身.)  //两个碰撞的物体是否有不同的层次?  function OnCollisionEnter(collision){  if(collision.other.transform.root!=transform.root){  print("The colliding objects are not in the same hierachy");  }  }  ◆  var rotation: Quaternion  描述:在世界空间中作为 Quaternion 存储的旋转.  Unity 内部以四元组方式存储旋转。使用 Transform.Rotation 旋转物体,使用  Transform.eulerAngles 来修改旋转的欧拉角  //重置世界旋转  Transform.Rotation=Quaternion.identity  //平滑地向一个 target 旋转倾斜  var smooth=2.0;  var tiltAngle=30.0;  function Update(){  var tiltAroundZ=Input.GetAxis("Horizontal")*tiltAngles;  var tiltAroundX=Input.GetAxis("Vertical")*tiltAngles;  var target=Quaternion.Euler(tiltAroundX,0,tiltAroundZ);  //向 target 旋转衰减  Transform.Rotation=Quaternion.Slerp(Transform.Rotation,target,Time.deltaTime*smooth );;  }  ◆  var up: Vector3  描述:在世界空间中变换的绿色轴。  //设置刚体的速度为  //沿着变化的绿色轴  rigidbody.velocity=transform.up*10;  ◆  var worldToLocalMatrix: Matrix4x4  描述:从世界空间到本地空间的变化矩阵(只读)  如果你对使用矩阵进行坐标变换不熟悉那么使用 Transform.InverseTransformPoint 代替.  函数  ◆  function DetachChildren(): void  描述:解除所以的子的父子关系。  如果你想销毁层次的根而不销毁它的子,可以使用这个。  transform.DetachChildren();  Destroy(gameObject);      参见:Transfrom.parent 来分开/改变单个变换的父.  ◆  function find(name: string): Transform  描述:根据 name 查找子并返回它.  如果没有子具有名称 name 返回 null.如果 name 包含 V 字符它将像一个路径名一样穿越  层次.  //旋转手指  function Update(){  aFinger=transform.find("LeftShoulder/Arm/Hand/Finger");aFinger.Rotate(Time.delta.Tim e*20,0,0);  }  ◆  function InverseTransfromDirection(direction: Vector3): Vector3  描述:从世界空间到本地空间变换 direction。相对于 Transform.TransfromDirection.  这个操作不受变换的影响。  //变换世界朝向到本地空间;  relative=transform.InverseTransfromDirection(Vector3.forward);  ◆  function InverseTransfromDirection(x: float, y: float, z: float): Vector3  描述:从世界空间变换方向 x,y,z 到本地空间。相对于 Transform.TransfromDirection.  这个操作不受变换的影响。  //变换世界朝向到本地空间;  relative=transform.InverseTransfromDirection(0,0,1);  ◆  function InverseTransfromPoint(position: Vector3): Vector3  描述:从世界空间到本地空间变换 position。相对于 Transform.TransformPoint.  注意返回位置会受到缩放的影响。如果你在处理方向,使用  Transform.InverseTransfromDirection.  //计算相对于相机的变换位置  camera=Camera.main.transform;  cameraRelative=camera.InverseTransfromPoint(transform.position);  if(cameraRelative.z>0){  print("The object is in front of the camera");  }  else{  print("he object is behind of the camera");  }  ◆  function InverseTransfromPoint(x: float, y: float, z: float): Vector3  描述:从世界空间变换位置到 x,y,z 到本地空间.  相对于 Transform.TransformPoint.  注意返回位置会受到缩放的影响。如果你在处理方向,使用  Transform.InverseTransfromDirection.  //相对于这 个变换计算世界原点.  relativePoint=transform.InverseTransfromPoint(0,0,0,);  if(RelativePoint.z>0){  print("The world origin is in front of the object");  }  else{  print("he world origin is behind of the object");      }  ◆  function IsChildOf(parent: Transform): bool  描述:这个变换时 parent 的一个子?  返回一个布尔值,表面改变换是否为给定变换的一个子。如果是为真,否则为假。     function OnEnterTrigger(col: Collider){  //在碰撞器和器子碰撞器之间忽略碰撞  //例如,当你有一个带有多个触发碰撞器的复杂角色时  if(col.transform.IsChildOf(transform))  return;  print("Don something here")  }  ◆  function LookAt(target: Transform, worldUp: Vector3=Vector3.up): void  描述:旋转变换以前向向量指向/target/的当前位置。  然后旋转变换的向上向量为 worldUp 向量.  如果你留空 worldUp 参数,该函数将使用  世界 y 轴。worldUp 是唯一一个建议向量,如果前向量与 worldUp 垂直,旋转的向上 向量  只与 worldUp 向量相同。  //这个完成的脚本可以附加到一个相机上使它  //连续地指向另一个物体.  //target 作为一个属性显示在检视面板中  //拖动其他物体到它上面使相机看向它  var target: Transform;  //每帧旋转相机以便使它一直看向目标  function Update(){  transform.LookAt(target);  }  ◆  function LookAt(worldPosition: Vector3, worldUp: Vector3=Vector3.up): void  描述:旋转该变换以便前向向量指向 worldPosition。  然后旋转变换的向上向量为 worldUp 向量.  如果你留空 worldUp 参数,该函数将使用  世界 y 轴。worldUp 是唯一一个建议向量,如果前向量与 worldUp 垂直,旋转的向上 向量  只与 worldUp 向量相同。  //指向位于世界坐标原点的物体  transform.LookAt(Vector3.zero);  ◆  function Rotate(eulerAngles: Vector3, relativeTo: Space=Space.Self): void  描述:绕着 x 轴旋转 eulerAngles.x 度,绕着 y 轴旋转 eulerAngles.y 度并绕着 z 轴旋转 eulerAngles.z 度.  如果 relativeTo 留空或者设置为 Space.Self 该旋转将绕着变换的本地轴。(当在场景视图  中选择该物体时,显示物体的 x,y 和 z 轴)如果 relativeTo 是 Sp ace.World 旋转绕着世 界的  x,y,z 轴.  function Update(){  //绕着物体的 X 轴以 1 度/秒的速度旋转物体.      transform.Rotate(Vector3.right*Time.deltaTime);  //...同时现对于世界坐标  //的 Y 轴以相同的速度旋转,  transform.Rotate(Vector3.up*Time.deltaTime, Space.World);  }  ◆  function Rotate(xAngle : float, yAngles : float, zAngles : float, relativeTo: Space=  Space.Self): void  描述:绕着 x 轴旋转 xAngle 度,绕着 y 轴旋转 yAngles 度并绕着 z 轴旋转 zAngles 度.  如果 relativeTo 留空或者设置为 Space.Self 该旋转将绕着变换的本地轴。(当在场景视图  中选择该物体时,显示物体的 x,y 和 z 轴)如果 relativeTo 是 Space.World 旋转绕着世 界的  x,y,z 轴.  function Update(){  //绕着物体的 X 轴以 1 度/秒的速度旋转物体.  transform.Rotate(Time.deltaTime,0,0);  //...同时现对于世界坐标  //的 Y 轴以相同的速度旋转,  transform.Rotate(0.deltaTime, 0, Space.World);  }  ◆  function Rotate(axis : Vector3, angles : float, relativeTo: Space=Space.Self): void  描述:绕着 axis 轴旋转 angle 度.  如果 relativeTo 留空或者设置为 Space.Self 该 axis 参数将相对于变换的本地轴。(当在  场景视图中选择该物体时,显示物体的 x,y 和 z 轴)如果 relativeTo 是 Space.World 该 axis 相  对于世界的 x,y,z 轴.  function Update(){  //绕着物体的 X 轴以 1 度/秒的速度旋转物体.  transform.Rotate(Vector3.right, Time.deltaTime);  //...同时现对于世界坐标  //的 Y 轴以相同的速度旋转,  transform.Rotate(Vector3.up, Time.deltaTime, Space.World);  }  ◆  function RotateAround(point: Vector3, axis : Vector3, angle: float): void  描述:绕着 axis 旋转改变换,并通过世界左边的 point,旋转 angle 度.  这个将同时修改变换的位置和旋转。  function Update(){  //绕着世界原点以 20 度/秒旋转物体.  transform.RotateAround(Vector3.zero, Vector3.up. 20*Time.deltaTime);  }  ◆  function TransformDirection(direction: Vector3): Vector3  描述:从本地空间到世界空间变换 direction。  这操作不会受到缩放或变换位置的影响。返回的向量与 direction 有相同的长度.  //计算相对于相机的轴  camera=Camera.main.transform;      cameraRelativeRight=camera.TransformDirection(Vector3.right);  //相对于相机的 x 轴应用一个力  rigidbody.AddForce(cameraRelativeRight*10);  ◆  function TransformDirection(x: float, y: float, z: float): Vector3  描述:从本地空间变换方向 x,y,z 到世界空间。  这操作不会受到缩放或变换位置的影响。返回的向量与 direction 有相同的长度.  //计算相对于相机的轴  camera=Camera.main.transform;  cameraRelativeRight=camera.TransformDirection(1,0,0);  //  相对于相机的 x 轴应用一个力  rigidbody.AddForce(cameraRelativeRight*10);  ◆  function TransformPoint(position: Vector3): Vector3  描述:从本地空间到世界空间变换 position。  注意返回位置会受到缩放的影响。如果你在处理方向,使用  Transform.TransformDirection.  //你需要在检视面板中赋值一个物体到这个变量  var someObject: GameObject;  //在当前物体的右侧实例化一个物体  thePosition=transform TransformPoint(Vector3.right*2);  Instantiate(someObject, thePosition);  ◆  function TransformPoint(x: float, y: floa t, z: float): Vector3  描述:从本地空间变换位置 x,y,z 到世界空间.  注意返回位置会受到缩放的影响。如果你在处理方向,使用  Transform.TransformDirection.  //你需要在检视面板中赋值一个物体到这个变量  var someObject: GameObject;  //在当前物体的右侧实例化一个物体  thePosition=transform TransformPoint(2,0,0);  Instantiate(someObject, thePosition);  ◆  function Translate(translation: Vector3, relativeTo: Space=Space.Self): void  描述:在该方向上移动变换 transform 距离.  如果 relativeTo 留空或者设置为 Space.Self 该运动将相对于变换的本地轴.(当在场景视  图中选择该物体时,显示物体的 x,y 和 z 轴)如果 relativeTo 是 Space.World 运动将相 对于世  界的坐标系统.  function Update(){  //沿着物体的 z 轴向前以 1 单位/秒的速度移动物体  transform.Translate(Vector3.up*Time.deltaTime, Space.World);  }  ◆  function Translate(x: float, y: float, z: float, relativeTo: Space=Space.Self): void  描述:沿着 x 轴移动 x,沿着 y 轴移动 y,沿着 z 轴移动.  如果 relativeTo 留空或者设置为 Space.Self 该运动将相对于变换的本地轴.(当在场景视  图中选择该物体时,显示物体的 x,y 和 z 轴)如果 relativeTo 是 Space.World 运动将相     对于世  界的坐标系统.  function Update(){  //沿着物体的 z 轴向前以 1 单位/秒的速度移动物体  transform.Translate(0,0,Time.deltaTime);  //世界空间中向上以 1 单位/秒的速度移动物体  transform.Translate(0,Time.deltaTime,0,Space.World);  }  ◆  function Translate(translation: Vector3, relativeTo: Transform): void  描述:在该方向上移动变换 translation 距离.  运动相对于/relativeTo/的本地坐标系统.  如果 relativeTo 是 null 运动将相对于世界的坐  标系统.  function Update(){  //相对于相机以 1 单位/秒的速度向右移动物体.  transform.Translate(Vector3.right*Time.deltaTime, Camera.main.transform);  }  ◆  function Translate(x: float, y: float, z: float, relativeTo: tr ansform): void  描述:沿着 x 轴移动 x,沿着 y 轴移动 y,沿着 z 轴移动.  运动相对于/relativeTo/的本地坐标系统.  如果 relativeTo 是 null 运动将相对于世界的坐  标系统.  function Update(){    //相对于相机以 1 单位/秒的速度向右移动物体.  transform.Translate(Time.deltaTime, 0,0, Camera.main.transform);  }  继承的成员  继承的变量  transform  附加到这个 GameObject 的 Transform(如果没有为 null)。  rigidbody  附加到这个 GameObject 的 Rigidbody(如果没有为 null)。  camrea  附加到这个 GameObject 的 Camera(如果没有为 null)。  light  附加到这个 GameObject 的 Light(如果没有为 null)。  animation  附加到这个 GameObject 的 Animation(如果没有为 null)。  constantForce  附加到这个 GameObject 的 ConstantForce 如果没有为 null)。  renderer  附加到这个 GameObject 的 Renderer(如果没有为 null)。  audio  附加到这个 GameObject 的 AudioSource(如果没有为 null)。  guiText  附加到这个 GameObject 的 GUIText(如果没有为 null)。  networkView  附加到这个 GameObject 的 NetworkView(只读)。(如果没有为 null)。  guiTexture  附加到这个 GameObject 的 GUITexture(只读)。(如果没有为 null)。  collider  附加到这个 GameObject 的 Collider(如果没有为 null)。  hingeJoint  附加到这个 GameObject 的 HingeJoint(如果没有为 null)。  particleEmitter  附加到这个 GameObject 的 ParticleEmitter(如果没有为 null)。  gameObject  这个组件所附加的游戏物体。一个组件总是附加到一个游戏物体。  tag  这个游戏物体的标签。  name  对象的名称。  hideFlags  该物体是够被隐藏,保存在场景中或被用户修改?      继承的函数  GetComponent  返回 type 类型的组件,如果游戏物体上附加了一个,如  果没有返回 null。  GetComponentInChildren  返回 type 类型的组件,这个组件位于 GameObject 或任何  它的子物体上,使用深度优先搜索。  GetComponentsInChildren  返回所以 type 类型的组件,这些组件位于 GameObject 或  任何它的子物体上。  GetComponents  返回 GameObject 上所以 type 类型的组件。  CompareTag  这个游戏物体被标签为 tag?  SendMessageUpwards  在这个游戏物体的每个 MonoBehaviour 和该行为的祖先  上调用名为 methodName 方法。  SendMessage  在这个游戏物体上的每个 MonoBehaviour 上调用  methodName 方法。  BroadcastMessage  在这个游戏物体或其任何子上的每个 MonoBehaviour 上  调用 methodName 方法。  GetInstanceID  返回该物体的实例 id。  继承的类函数  operator bool  这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体,组件或资源。  DestroyImmediate  立即销毁物体 obj。强烈建议使用 Destroy 代替。  FindObjectsOfType  返回所有类型为 type 的激活物体。  FindObjectsOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator !=  比较两个物体是否不相同。  DontDestroyOnLoad  加载新场景时确保物体 target 不被自动销毁。  Flare  类,继承自 Object  一个闪光资源。在组件参考中获取更多关于闪光的信息.  这个类没有属性。他需要在检视面板中设置。你可以应用闪光并在运行时将它赋给一  个光源。  //在检视面板中公开一个闪光的引用  var newFlare: Flare;  //赋值闪光  light.flare‐newFlare;  参见:Flare assets,LensFlare 类.  继承的成员  继承的变量  name  对象的名称。  hideFlags  该物体是够被隐藏,保存在场景中或被用户修改?  继承的函数  GetInstanceID  返回该物体的实例 id。  继承的类函数  operator bool  这个物体存在吗?      Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体,组件或资源。  DestroyImmediate  立即销毁物体 obj。强烈建议使用 Destroy 代替。  FindObjectsOfType  返回所有类型为 type 的激活物体。  FindObjectsOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator !=  比较两个物体是否不相同。  DontDestroyOnLoad  加载新场景时确保物体 target 不被自动销毁。  Font  类,继承自 Object  用于字体资源的脚本接口,  可以使用这个类为 GUI 文本或文本网格动态切换字体。  参见:GUIText 和 TextMesh.  变量  ◆  var material: Material  描述:这个材质用于字体的显示。  函数  ◆  function HasCharacter(c: char): bool  描述:这个字体是否有特定字符?  继承的成员  继承的变量  name  对象的名称。  hideFlags  该物体是够被隐藏,保存在场景中或被用户修改?  继承的函数  GetInstanceID  返回该物体的实例 id。  继承的类函数  operator bool  这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体,组件或资源。  DestroyImmediate  立即销毁物体 obj。强烈建议使用 Destroy 代替。  FindObjectsOfType  返回所有类型为 type 的激活物体。  FindObjectsOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator !=  比较两个物体是否不相同。  DontDestroyOnLoad  加载新场景时确保物体 target 不被自动销毁。  GameObject  类,继承自 Object  Unity 场景中所有实体的基类。  参见:Component  变量  ◆  var active: bool  描述:游戏物体是激活的?激活/不激活该游戏物体,  //不激活该游戏物体.   gameObject.active=false;      ◆  var animation: Animation  描述:附加到这个游戏物体的???(只读)(如果没有为 null)  var other: GameObject;  other.animation.Play();  ◆  var audio: AudioSource  描述:附加到这个游戏物体的???(只读)(如果没有为 null)  var other: GameObject;  other.audio.Play();  ◆  var camera: Camera  描述:附加到这个游戏物体的相机(只读)(如果没有为 null)  var other: GameObject;  other.camera.fieldOfView=45;  ◆  var collider: Collider  描述:附加到这个游戏物体的碰撞器(只读)(如果没有为 null)  var other: GameObject;  other.collider.material.dynamicFriction=1;  ◆  var constantForce: ConstantForce  描述:附加到这个游戏物体的恒定力(只读)(如果没有为 null)  var other: GameObject;  other.constantForce.relativeForce=Vector3(0,0,1);  ◆  var guiText: GUIText  描述:附加到这个游戏物体的 GUIText(只读)(如果没有为 null)  var other: GameObject;  other.guiText.text="HelloWorld";  ◆  var guiTexture: GUITexture  描述:附加到这个游戏物体的 GUIText(只读)(如果没有为 null)  ◆  var hingeJoint: HingeJoint  描述:附加到这个游戏物体的 HingeJoint(只读)(如果没有为 null)  var other: GameObject;  other.hingeJoint Spring.targetPosition=70;  ◆  var layer: int  描述:游戏物体所在的层,一个层在[0...32]之间.  Layer 可以用来选择性的渲染或忽略投射.  //设置游戏物体到忽略投射物体的层上  gameObject.layer=2;  ◆  var light: Light  描述:附加到这个游戏物体的光影(只读)(如果没有为 null)  var other: GameObject;  other.light.range=10;  ◆  var networkView: NetworkView  描述:附加到这个游戏物体的网络视(只读)(如果没有为 null)  var other: GameObject;  other.networkView.RPC("MyFunction",RPCMode.All,"someValue");  ◆  var particleEmitter: ParticleEmitter      描述:附加到这个游戏物体的粒子发射器(只读)(如果没有为 null)  var other: GameObject;  other.particleEmitter.emite=true;  ◆  var renderer: Renderer  描述:附加到这个游戏物体的渲染器(只读)(如果没有为 null)  var other: GameObject;  other.renderer.material.color=Color.green;  ◆  var rigidbody: Rigidbody  描述:附加到这个游戏物体的刚体(只读)(如果没有为 null)  var other: GameObject;  other.rigidbody.AddForce(1,1,1);  ◆  var tag: string  描述:这个游戏物体的标签。  标签可以用来标识一个游戏物体。标签在使用前必须在标签管理器中定义。  gameObject.tag="Player";  ◆  var transform: Transform  描述:附加到这物体的变换.  (如果没有为 null)  var other: GameObject;  other.transform.Translate(1,1,1);  构造函数  ◆  static function GameObject(name:string): GameObject  描述:创建一个新的游戏物体,命名为 name.  Transform 总是被添加到该游戏物体.  //创建一个名为"Player"的游戏物体  //并给他添加刚体和立方体碰撞器.  player=new GameObject("Player");  player.AddComponent("Rigidbody");  player.AddComponent("BoxCollider");  ◆  static function GameObject(): GameObject  描述:创建一个新的游戏物体.  Transform 总是被添加到该游戏物体.  //创建一个没有名称的游戏物体  //并给他添加刚体和立方体碰撞器.  player=new GameObject();  player.AddComponent("Rigidbody");  player.AddComponent("BoxCollider");  ◆  static function GameObject(name: string, params components: Type[]): GameObject  描述:创建一个游戏物体并附加特定的组件.  函数  ◆  function AddComponent(className: string): Component  描述:添加一个名为 className 的组件类型到该游戏物体.  使用这个函数来改变物体的行为。你也可以传递脚本的类名来添加脚本到游戏物体。  有些组件也需要另一些组件存在于同一个游戏物体上。这个函数会自动添加需要的组  件,例如如果你添加一个 HingeJoint 也会自动添加一个 Rigidbody.      //添加名为 FoobarScript 的脚本到游戏物体  gameObject.AddComponent("FoobarScript");  //添加球形碰撞器到游戏物体  gameObject.AddComponent("FoobarCollider");  ◆  function AddComponent(componentType: Type): Component  描述:添加一个名为 componentType 类型的类到该游戏物体.  gameObject.AddComponent("FoobarScript");  注意,没有 RemoveComponent(),来移除组件,使用 Object.Destroy.  ◆  function BroadcastMessage(methodName: string, parameter: object=mull, option:  SendMessageOption=SendMessageOptions.RequireReceiver): void  描述:在这个游戏物体或其任何子上的每个 MonoBehaviour 上调用 methodName 方法。  通过使用零参数,接收方法可以选择忽略 parameter。如果 options 被设置为  SendMessageOptions.RequireReceiver,那么如果这个消息没有被任何组件接收时将打 印一个  错误消息。  ///使用值 5 调用函数 ApplyDamage  gameObject.BroadcastMessage("ApplyDamage",5);  //所有附加到该游戏物体和其子物体上脚本中的  //ApplyDamage 函数都将调用  function ApplyDamage(damage){  print(damage)  }  ◆  function CompareTag(tag: string): bool  描述:这个游戏物体被标签为 tag?  //立即死亡触发器  //销毁任何进入到触发器的碰撞器,这些碰撞器被标记为 Player.  function OnTriggerEnter(other: Collider){  if(other.gameObject.CompareTag("Player"))  {  Destroy(other.gameObject);  }  }  ◆  function GetComponent(type: Type): bool  描述:如果游戏物体有 type 类型的组件就返回它,否则返回 null.  你可以使用这个函 数  访问内置的组件或脚本.  GetComponent 是防卫其他组件的主要方法。对于 Javascript 脚本的类型总是脚本显示  在工程视图中的名称。例如:  function Start()  {  var curTransform: Transform;  curTransform=gameObject.GetComponent(Transform);  //这等同于  curTransform=gameObject.transform;      }  function Update() {  //为访问附加在同一游戏物体上  //其他脚本内的公用变量和函数  //(ScriptName 为 Javascript 文件名)  var other: ScriptName=gameObject.GetComponent(ScriptName);  //调用该脚本中的 DoSomething 函数  other DoSomething();  //设置其他脚本实例中的另一个变量  other.someVariable=5;  }  ◆  function GetComponent(type: string): Component  描述:返回名为 type 的组件,如果游戏物体上附加了一个就返回它,如果没有返回 null.  出于性能的原因最好用 Type 电影 GetComponent 而不是一个字符串。然而有时你可能  无法得到类型,例如当试图从 Javascript 中访问 c#时。在那种情况下你可以简单的通过 名  称而不是类型访问这个组件。例如:  function Update()  {  //为访问附加在同一游戏物体上  //其他脚本内的公用变量和函数.  //(ScriptName 为 Javascript 文件名)  var other=gameObject.GetComponent("ScriptName");  //调用该脚本中的 DoSomething 函数  other.DoSomething().  //设置其他脚本实例中的另一个变量  other.someVariable=5;  }  ◆  function GetComponentInChildren(type: Type): Component  描述:返回 type 类型的组件,这个组件位于这个游戏物体或任何它的子物体上,使用  深度优先搜索。  只有激活的组件被返回。  var script: ScriptName=gameObject.GetComponentInChildren(ScriptName);  script.DoSomething();  ◆  function GetComponents(type: Type): Component[]  描述:返回该游戏物体上所有 type 类型的组件。  //在这个游戏物体和所有它的子物体上  //的 HingeJoints 上禁用弹簧  var hingeJoints=gameObject.GetComponents(HingeJoint);  for(var joint: HingeJoint in hingeJoints){  joint.useSpring=false;  }  ◆  function GetComponentsInChildren(type: Type, includeInactive: bool=false):  Component[]      描述:返回所有 type 类型的组件,这些组件位于该游戏物体或任何它的子物体上。  只有激活的组件被返回。  //在这个游戏物体和所有它的子物体上  //的所有 HingeJoints 上禁用弹簧  var hingeJoints=gameObject.GetComponentsInChildren(HingeJoint);  for(var joint: HingeJoint in hingeJoints){  joint.useSpring=false;  }  ◆  function SampleAnimation(animation: AnimationClip, time: float): void  描述:在一个特定的时间采样动画,用于任何动画目的。  出于性能考虑建议使用 Animation 接口,这将在给定的 time 采用 animation,任何被动  化的组件属性都将被这个采样值替换,多数时候你会使用 Animation.Play.  SampleAnimation  用于当你需要以无序方式或给予一些特殊的输入在帧之间跳跃时使用。参见:Aniamtion  //通过采样每一帧或动画剪辑  varclip.AniamtionClip  function Update()  {  gameObject.sampleAnimation(clip, clip.length‐Time.time);  }  ◆  function SendMessage(methodName: string, value: object=null, options:   SendMessageOption=SendMessageOption.RequireReceiver): void  描述:在这个游戏物体上的每个 MonoBehaviour 上调用 methodName 方法。  通过使用零参数,接收方法可以选择忽略参数。如果 options 被设置为  SendMessageOptions.RequireReceiver,那么如果这个消息没有被任何组件接收时将打 印一个  错误消息。  //使用值 5 调用函数 ApplyDamage  gameObject.SendMessage("ApplyDamage",5);  //所以附加到该游戏物体上的脚本中的  //ApllyDamage 函数都将调用  function.ApplyDamage(damage){  pring(damage);  }  ◆  function SendMessageUpwards(methodName: string, value: object=null, options:   SendMessageOption=SendMessageOption.RequireReceiver): void  描述:在这个游戏物体上的每个 MonoBehaviour 和该行为的祖先上调用名为 methodName  方法。  通过使用零参数,接收方法可以选择忽略参数。如果 options 被设置为  SendMessageOptions.RequireReceiver,那么如果这个消息没有被任何组件接收时将打 印一个  错误消息。  //使用值 5 调用函数 ApplyDamage      gameObject.SendMessageUpwards("ApplyDamage",5);  //所以附加到该游戏物体上的脚本中的  //ApllyDamage 函数都将调用  function.ApplyDamage(damage){  pring(damage);  }  ◆  function SetActiveRecursion(rotate: bool): void  描述:设置这个物体和所以子游戏物体的机会状态。  gameObject.SetActiveRecursion(true);  类方法  ◆  static function CreatePrimitive(type: PrimitiveType): GameObject     描述:用几何的网格渲染器和适当的碰撞器创建一个游戏物体。  ///在场景中创建一个平面,球体和立方体  function Start()  {  GameObject.CreatePrimitive(PrimitiveType.Plane);  var cube=GameObject.CreatePrimitive(PrimitiveType.Cube);  cube.transform.position=Vector3(0,0.5,0);  var sphere=GameObject.CreatePrimitive(PrimitiveType.Sphere);  Sphere.transform.position=Vector3(0,1.5,0);  var capsule=GameObject.CreatePrimitive(PrimitiveType.Capsule);  capsule.transform.position=Vector3(2,1,0);  var cylinder=GameObject.CreatePrimitive(PrimitiveType.Cylinder);  cylinder.transform.position=Vector3(‐2,1,0);  ◆  static function Find(name: string): GameObject  描述:依据 name 查找物体并返回它.  如果没有物体具有名称 name 返回 null.  如果 name 包含'/'字符它将像一个路径名一样 穿  越层次,这个函数只返回激活的游戏物体。  出于性能考虑建议不要在每帧中都是有该函数,而是在开始时调用并在成员变量中缓 存结果  或者用 GameObject.FindWithTag.  //这返回场景中名为 Hand 的游戏物体.  hand=GameObject.Find("Hand");  //这将返回名为 Hand 的游戏物体.  //在层次试图中 Hand 也许没有父!  hand=GameObject.Find("/Hand");  //这将返回名为 Hand 的游戏物体.  //它是 Arm>Monster 的子.  //在层次试图中 Monster 也许没有父!  hand=GameObject.Find("/Monster/Arm/Hand");  //这将返回名为 Hand 的游戏物体.  //它是 Arm>Monster 的子.      //Monster 有父.  hand=GameObject.Find("/Monster/Arm/Hand");  这个函数最常用与在加载时自动链接引用到其他物体,例如,在 MonoBehaviour.Awake  或 MonoBehaviour.Start 内部.  处于性能考虑你不应该在每帧中调用这个函数,例如  MonoBehaviour.Update 内.  一个通用的模式是在 MonoBehaviour.Start 内将一个游戏物 体赋给  一个变量.  并在 MonoBehaviour.Update 中使用这个变量.  //在 Start 中找到 Hand 并在每帧中选择它  private var hand: GameObject;  function Start(){  hand=GameObject.Find("/Monster/Arm/Hand");  }  function Update(){  hand.transform.Rotate(0,100*Time.deltaTime,0);  }  ◆  static function FindGameObjectsWithTag(tag: string): GameObject[]  描述:返回标记为 tag 的激活物体列表,如果没有发现返回 null.  标签在使用前必须在标签管理中定义。  //在所有标记为"Respawn"的物体位置处  //实例化 respawnPrefab     var respawnPrefab: GameObject;  var respawns=GameObject.FindGameObjectsWithTag("Respawn");  for(var respawn in respawns)  Instantiate(respawnPrefab, respawn.position, respawn.rotation);  //打印最接近的敌人的名称  print(FindClosestEnemy().name);  //找到最近的敌人的名称  function FindClosestEnemy(): GameObject {  //找到所以标记为 Enemy 的游戏物体  var gos: GameObject[]  gos=GameObject.FindGameObjectsWithTag("Enemy");  var closest: GameObject;  var distance=Mathf.Infinity;  var position=transform.position;  //遍历它们找到最近的一个  for(var go: GameObject in gos){  var diff=(go.transform.position‐position);  var curDistance=diff.sqrMagnitude;  if(curDistance>miplevel)高度类 似。  该函数只工作在 ARGB32,RGB24 和 Alpha8 纹理格式上。对于其他格式,GetPixels 被  忽略.  使用 GetPixels 比重复调用 GetPixel 更快,尤其是对于大纹理,此外 GetPixels 可以访  问单独的 mipmap 等级.  参见:SetPixels,mipmapCount.  ◆  function SetPixel(face: CubemapFace, x: int, y: int, color: Color): void      描述:在坐标(face,x,y)处设置像素颜色。  调用 Apply 来实际上载改变后的像素到显卡,  上载是非常耗时的操作,因此你要在  Apply 调用之间改变尽可能多的像素。  该函数只工作再 ARGB32,RGB24 和 Alpha8 纹理格式上。对于其他格式 SetPixels 被  忽略.  参见:Apply 函数.  ◆  function SetPixels(color: Color[], face: CubemapFace, mipmapFace, miplevel: int): void  描述:设置立方贴图一个面的像素颜色。  这个函数取回并改变整个立方贴图面的像素颜色数组。调用 Apply 来实际上载改变后  的像素到显卡.  colors 数组被放置在 2D 数组中,这里,像素被从左到右,从上到下放置(行序)数组  的大小必须至少是所使用的 mip 等级的宽乘高。默认的 mip 等级是零(基本纹理)在 这种  情况下大小仅为纹理的大小。一般地,mip 等级尺寸是 mipSize=max(1,width>>miplevel) 高  度类似。  该函数只工作在 ARGB32,RGB24 和 Alpha8 纹理格式上。对于其他格式,GetPixels 被  忽略.  参见:GetPixel, Apply, mipmapCount.  继承的成员  继承的变量  name  对象的名称  hideFlages  该物体是够被隐藏,保存在场景中或被用户修改?  继承的函数  GetInstanceID  返回该物体的实例 id。  继承的类函数  operator bool  这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体,缓存或资源。  DestroyImmediate  立即销毁物体 obj,强烈建议使用 Destroy 代替。  FindObjectsOfType  返回所有类型为 type 的激活物体。  FindObjectsOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator !=  比较连个物体是否不相同。  DomDestroyOnLoad  卸载场景时确保物体 target 不被自动销毁。  MovieTexture  类,继承自 Texture  Movie Textures 是可以播放电影的纹理  它们可以用于过场动画电影序列,或者渲染电影到场景中。  变量  ◆  var audioClip: AudioClip  描述:返回属于 MovieTexture 的 AudioClip.  注意这是一个特定的 AudioClip 它总是与电影同步播放音频。在编辑器重如果你将电影  的 audioClip 附加到一个源上,它将在电影播放的时候自动开始播放,否则你必须收动 开      始它,剪辑只能被附加到一个 AudioSource。  ◆  var isPlaying: bool  描述:返回电影是否在播放  ◆  var isReadyToPlay: bool  描述:如果电影是从网站上下载的,这个返回是够已经下载了足够的数据以便能够不 同  版的播放它。  对于不是来自 web 的流的电影,这个值是返回真。  function Start(){  www=new WWW(url);  guiTexture.texture=www.movie;  }  function Update(){  if(!guiTexture.texture.isPlaying&&guiTexture.texture.isReadyToPlay)  guiTexture.texture.Play();  }  ◆  var loop: bool  描述:这个为真时电影循环。  函数  ◆  function Pause(): void  描述:暂停播放电影。  function Start(){  renderer.material.mainTexture.Pause();  }  ◆  function Play(): void  描述:开始播放电影。  注意运行的 MovieTexture 将使用大量的 CPU 资源,并且它将持续运行直到它被手、  动停止或加载一个新的关卡。参见:stop  function Start(){  renderer.material.mainTexture.Play();  }  继承的成员  继承的变量  width  纹理的像素宽度(只读)  height  纹理像素高度(只读)  filterMode  纹理的过滤模式  anisoLevel  纹理的各向异性过滤等级  wrapMode  纹理的包裹模式(Repeat 或 Clamp)  mipMapBias  纹理的 mipMap 便宜。  name  对象的名称  hideFlages  该物体是够被隐藏,保存在场景中或被用户修改?  继承的函数  描述:渲染纹理的尺寸限制为 2 的幂次?  当创建图像后刷处理效果时,你应该总是设置这个为 false 因为这允许四面      ReaderTexture 大小问任意屏幕大小。  当为普通的材质和 shader 使用 RenderTexture 时,你应该总是设置这个为 true 因为这 允  许像普通纹理一样使用一个 RenderTexture.  ◆  var useMipMap: bool  描述:生成 mipmap 等级?  当设置为 true,渲染到这个纹理将创建并生成 mipmap 等级面膜人的渲染纹理没有  mipmap.  这个这毙用于 2 的幂次方尺寸的渲染纹理(参考 isPowerOfTwo).  ◆  var width: int  描述:渲染纹理的像素宽度。  注意不像 Texture.height 属性,这个是可读写的,设置一个值来改变大小  构造函数  ◆  static function ReaderTexture(width: int, height: int, depth: int): ReaderTexture  描述:创建一个新的 RenderTexture 对象。  渲染纹理使用 width x height 尺寸创建,深度缓存为 depth 位(深度可以是 0,16 或 24)  渲染纹理或设置为非 2 的幂次纹理并使用默认的 color format  注意创建一个 RenderTexture 不会立即创建硬件表示。实际的渲染纹理是第一次使用  是创建或当 Create 被手动调用时创建。因此在创建渲染纹理之后,你可以设置额外的 变量,如  isPowerOfTwo, format, isCubemap 等等。  参见:isPowerOfTwo 变量, format 变量.  函数  ◆  function Create(): bool  描述:实际创建 RenderTexture。  RenderTexture 构造函数实际上并没有创建硬件纹理:默认的纹理第一次创建时被设置  为 active,调用 Create 来创建它。如果纹理已经被创建 Create 不做任何事。  参见:Release,isCreated 函数.  ◆  function IsCreate(): bool  描述:渲染纹理产生了?  RenderTexture 构造函数实际上并没有创建硬件纹理:默认的纹理第一次创建时被设置  为 active,如果用于渲染的的硬件资源被创建了,IsCreate 返回 ture.  参见:Create,Release 函数.  ◆  function Release(): void  描述:释放 RenderTexture。  这个函数释放由这个渲染纹理使用的硬件资源,纹理本身并不被销毁,并在使用的时 候  被自动再次创建。  参见:Cr eate,IsCreate 函数.  ◆  function SetBorderColor(color: Color): void  描述:为这个渲染纹理设置为边框颜色。  如果显卡支持"剪裁到边界",那么任何超出 0...1UV 范围的纹理采样将返回边界颜色。  ◆  function SetGlobalShaderProperty(propertyName: string): void  描述:赋值这个 RenderTexture 为一个名为 propertyName 的全局 shader 属性。      类变量  ◆  static var active: RenderTexture  描述:激活的渲染纹理。  所有的渲染将进入激活的 RenderTexture 如果活动的 RenderTexture 未 null 所有的东西 都  被渲染到主窗口.  当你一个 RenderTexture 变为激活,如果它还没有被创建,硬件渲染内容将被自动创建。  类方法  ◆  static function GetTemporary(width: int, height: int, depthBuffer: int, format:  RenderTextureFormat=RenderTextureFormat.ARGB32): RenderTexture  描述:分配一个临时的渲染纹理。  这个函数被优化,用于当你需呀一个快速 RenderTexture 来做一些临时计算时,一旦完  成使用 ReleaseTemporary 释放它,这样,如果需要,另一个调用能够开始重用它。  ◆  static function ReleaseTemporary(temp: RenderTexture): void  描述:释放一个由 GetTemporary 分配的临时纹理。  如果可能,之后调用 GetTemporary 将重用前面创建的 RenderTexture,如果没有请来临  时 RenderTexture,几帧后它将被销毁。  继承的成员  继承的变量  width  纹理的像素宽度(只读)  height  纹理像素高度(只读)  filterMode  纹理的过滤模式  anisoLevel  纹理的各向异性过滤等级  wrapMode  纹理的包裹模式(Repeat 或 Clamp)  mipMapBias  纹理的 mipMap 便宜。  name  对象的名称  hideFlages  该物体是够被隐藏,保存在场景中或被用户修改?  继承的函数  GetInstanceID  返回该物体的实例 id。  继承的类函数  operator bool  这个物体存在吗?  Instantiate  克隆 original 物体并返回这个克隆。  Destroy  移除一个游戏物体,缓存或资源。  DestroyImmediate  立即销毁物体 obj,强烈建议使用 Destroy 代替。  FindObjectsOfType  返回所有类型为 type 的激活物体。  FindObjectsOfType  返回第一个类型为 type 的激活物体。  operator==  比较两个物体是否相同。  operator !=  比较连个物体是否不相同。  DomDestroyOnLoad  卸载场景时确保物体 target 不被自动销毁。  Texture2D  类,继承自 Texture  用于处理纹理的类。使用这个来创建临时的纹理或修改已经存在的 texture assets  变量  ◆  var format: TextureFormat      描述:纹理中像素数据的格式(只读)  使用这个确定纹理的格式。  ◆  var mipmapCount: int  描述:在这个纹理中有多少 Mipmap 等级(只读)  返回值也包含基本等级,因此他总是 1 或更大。  如果你使用 GetPixels 或 SetPixels 来取回或修改不同的 mip 等级时,需要使用  mipmapCount.  例如,你可以改变一个纹理以便每个 mip 等级以不同的颜色修改.  然后 再游  戏中你可以看到那个 mip 等级被实际使用了。  参见:GetPixels 函数,SetPixels 函数。  构造函数  ◆  static function Texture2D(width: int, height: int): Texture2D  描述:创建新的空纹理;  纹理为 width 乘 height 大小,TextureFormat 为 ARGB32 带有 mipmap.  通常你会想到在创建它之后设置纹理的颜色,使用 SetPixel,SetPixels 和 Apply 函数。  function Start(){  //创建一个新的纹理并将它赋给渲染器材质  var texture=new Texture2D(128,128);  renderer.material.mainTexture=texture;  }  参见:SetPixel,SetPixels,Apply 函数.  ◆  static  function  Texture2D(width:  int,  height:  int,  format:  TextureFormat,  mipmap:  bool):   Texture2D  描述:创建新的空纹理;  纹理为 width 乘 height 大小,具有给定的 format 有或没有 miamap.  通常你会想到在创建它之后设置纹理的颜色,使用 SetPixel,SetPixels 和 Apply 函数。  创建不允许有压缩纹理格式的贴图。  function Start(){  //创建一个新的纹理并将它赋给渲染器材质  var texture=new Texture2D(128,128, TextureFofrmat.AGRB32, false);  renderer.material.mainTexture=texture;  }  参见:SetPixel,SetPixels,Apply 函数.  函数  ◆  function Apply(updateMipmaps: bool=true): void  描述:实际地应用前面的 SetPixel 和 Se tPixels 改变.  如果 updateMipmaps 为 true,mipmap 等级也被重新计算,使用基本等级作为源.通常  你会想在所有的情况下使用 true,除非你已经使用 SetPixels 修改了 mip 等级。  这是非常耗时的操作,因此你要在 Apply 调用之间改变尽可能多的像素。  function Start(){  //创建一个新的纹理并赋值它到渲染器材质  var texture=new Texture2D(128,128);  renderer.material.mainTexture=texture;      //用 Sierpinski 分形模式填充!  for(y=0; y>miplecvel)高 度类  似。  该函数只工作在 ARGB32, RGB24 和 Alpha8 纹理格式上。对于其他格式 GetPixels 被忽  略。  使用 GetPixels 比重复调用 GetPixel 更快,尤其是对于大纹理.  此外,GetPixels 可以访  问单独的 mipmap 等级.  参见:GetPixels, mipmapCount.  ◆  function GetPixels(x: int, y: int, blockWidth: int, bl ockHeight: int, miplevel: int): Color[]  描述:获取一块像素颜色。  这个函数是上面 GetPixels 函数的扩展;它不会返回整个 mip 等级而只是返回开始于 x, y  点 blockWidth 乘 blockHeight 的区域。该块必须适合使用的 mip 等级。返回的数组是  blockWidth*blockHeight 尺寸。  ◆  function LoadImage(data: byte[]): bool  描述:从一个字节数组中加载一个图片。  这个函数从原始的字节数组中加载一个 JPG 和 PNG 图片。  //通过添加.txt 扩展名刀文件来加载一个.jpg 或.png 文件  //并拖动它到 imageTextAsset  var imageTextAsset: TextAsset;  function Start()  {  var tex=new Texture2D(4,4);  tex.LoadImage(imageTextAsset.bytes);  renderer.material.mainTexture=tex;  }  参见:EncodeToPNG 函数.  ◆  function PackTextures(textures: Textures2D[]. padding: in t, maximumAtlasSize: int=  2048): Rect[]  参数  textures  纹理数组被打包到集合汇总。  padding  打包纹理的像素间距。  maximumAtlasSize  调整纹理的最大尺寸。  返回 Rect[]‐一个矩形数组,数组包含每个输入纹理的 UV 坐标集合,如果打包失败      为 mull。  描述:打包多个 textures 到一个纹理集中。  这个函数将使用纹理集替换当前纹理。尺寸,格式和纹理是否有 Mipmap 可以在打包 后  改变。  生成的纹理集尽可能的大以便适合所有输入的纹理,但是在没有维度上不超过  maximumAtlasSize.  如果输入的纹理不能适合纹理集合的大小,它们将被缩小。  如果所有导入的纹理是 DXT1 压缩格式的,纹理集也有 DXT1 格式.  如果所有输入纹理  被以 DXT1 或 DXT5 格式压缩,那么集合将是 DXT5 格式。如果任何输入的纹理是没有 压  缩的,那么集合将是 ARGB32 来压缩格式。  如果输入的纹理没有 mipmap,那么集合也将不会有 mipmap。  ◆  function ReadPixels(source: Rect, destX: int, destY: int, recalculateMipMaps: bool=  true: void  描述:读取屏幕像素到保存的纹理数据中。  这将从当前激活的 ReaderTexture 或试图(由/source/指定)拷贝一个矩形像素区域到 由  destX 和 destY 定义的位置上.  两个坐标都是用像素空间‐(0,0)为左下角。  如果 recalculateMipMaps 被设置为真,纹理的 Mip 贴图也将被更新。如果  recalculateMipMaps 被设置为假,你必须调用 Apply 重 计算它们.  该函数只工作在 ARGB32 和 RGB24 纹理格式上。  参见:EncodeToPNG.  ◆  function Resize(width: int, height: int, format: TextureFormat, hasMipMap: bool): bool  描述:调整纹理大小。  改变纹理的尺寸为 width 乘 height,格式为 textureFormat 并有选择地创建 Mip 贴图. 调  整大小后,纹理像素将是未定义的。这个函数非常类似与纹理构造器,除了它工作在 已存  在的纹理物体上。  调用 Aplly 来实际上载改变后的像素到显卡。  不允许调整压缩纹理格式的大小。  ◆  function Resize(width: int, height: int): bool  描述:调整纹理大小。  改变纹理的大小为 width 乘 height。调整大小后,纹理像素将是未定义的。这个函数  非常类似与纹理构造器,除了它工作在已存在的纹理物体上。  调用 Aplly 来实际上载改变后的像素到显卡。  不允许调整压缩纹理格式的大小。  ◆  function SetPixel(x: int, y: int, co lor: Color): void  描述:在坐标(x,y)处设置像素颜色。  调用 Aplly 来实际上载改变后的像素到显卡。上载是非常耗时的操作,因此你要在  Apply 调用之间改变尽可能多的像素。  如果你需要在运行时频繁重计算一个纹理,生产一个像素颜色数组并用 SetPixels 一次 设  置它们,这种方法要快一些。      该函数只工作在 ARGN32, RGB24 和 Alpha8 纹理格式上。对于其他格式 SetPixel 被  忽略。  function Start(){  //创建一个新的纹理并赋值它到渲染器材质  var texture=new Texture2D(128,128);  renderer.material.mainTexture=texture;  //用 Sierpinski 分形模式填充!  for(y=0; y>miplecvel)  高度类似。  该函数只工作在 ARGB32, RGB24 和 Alpha8 纹理格式上。对于其他格式 GetPixels 被  忽略。  使用 GetPixels 比重复调用 GetPixel 更快,尤其是对于大纹理.  此外,GetPixels 可以访 问  单独的 mipmap 等级.  参见:GetPixels, Apply, mipmapCount.  //这个脚本用不同的颜色修改纹理的 Mip 等级  //(第一个等级为红色,第二个为绿色,第三个为蓝色),你可以使用这个来查看  //那个 Mip 被实际使用和如何使用.  function Start(){  //赋值原始的纹理并赋值给材质  var texture: Texture2D=Instantiate(Renderer.material.mainTexture);  renderer.material.mainTexture=texture;  //colors 用来修改前 3 个 mip 等级  var co lors=new Colors[3];  colors[0]=Color.red;  colors[1]=Color.green;  colors[2]=Color.blue;      var mipCount=Mathf.Min(3, texture.mipmapCount);  //修改每个 Mip 等级  for(var mip=0; mipProject Settings‐>Physics 的检视面板中改变而不是通过脚本。  ◆  static var gravity: Vector3  描述:应用到场景所以刚体的重力。  重力可以通过在单体刚体上使用 useGravity 属性关闭。  Physics.gravity=Vector3(0,‐1,0,0);  ◆  static var maxAngularVelocity: float  描述:允许用于任何刚体的缺省最大角速度(默认为 7)。必须为正  刚体的角速度最大为 maxAngularVelocity 以避免高速旋转物体的数值不稳定性。因为  这也许会阻止企图快速旋转的物体,例如车轮,你可以使用 Rigidbody.maxAngularVelocity  逐刚体重载该值。  这个值可以在 Edit‐>Project Settings‐>Physics 的检视面板中改变而不是通过脚本。  Physics.maxAngularVelocity=10;  ◆  static var minPenetrationForPenalty: float  描述:最小的接触渗透值,以便应用一个罚力(默认为 0.05)必须为正  这个值可以在 Edit‐>Project Settings‐>Physics 的检视面板中改变而不是通过脚本。  Physics.minPenetrationForPenalty=0.1;  ◆  static var sleepAngularVelocity: float  描述:缺省的角速度。低于该值的物体将开始休眠(默认为 0.14)。必须为正  参考 Rigidbody Sleeping 获取更多信息。这个值可以使用 Rigidbody.sleepAngularVelocity  来逐刚体重载。  这个值可以在 Edit‐>Project Settings‐>Physics 的检视面板中改变而不是通过脚本。  Physics.sleepAngularVelocity=0.1;  ◆  static var sleepVelocity: float  描述:缺省的线性速度,低于改值的物体将开始休眠(默认为 0.15)。必须为正。  参考 Rigidbody Sleeping 获取更多信息。则会更值可以使用 Rigidbody.sleepVelocity 来逐  刚体重载。  这个值可以在 Edit‐>Project Setting‐>Physics 的检视面板中改变而不是通过脚本  Physics.sleepVelocity=0.1;  ◆  static var solverIterationCount: int  描述:允许用于任何刚体的缺省迭代数(默认为 7)。必须为正。  solverIterationCount 聚顶关节和接触点如何精确地计算。如果出现链接的物体震荡和行  为怪异,为 solver Iteration Count 设置一个较高的值将改善他们的稳定性(但是比较慢)。 通  常值 7 可以在几乎所有的情况下工作的很好。  这个值可以在 Edit‐>Project Settings‐>Physics 的检视面板中改变而不是通过脚本.  Physics.solverIterationCount=10;  类方法  ◆  static function CheckCapsule(start: Vector3, end: Vector3, radius: float, layermask: int=  kDefaultRaycastLayers): bool  描述:如果有任何碰撞器接触到由世界坐标中的 start 和 end 构成的轴并具有 radius 半  径的胶囊时返回真。  ◆  static function CheckSphere(position: Vector3, radius: float, layermask: int=      kDefaultRaycastLayers): bool  描述:如果有任何碰撞器接触到由世界坐标中的 position 和 radius 定义的球体时返回  真。  ◆  static function IgnoreCollision(collider1: collider, collider2: collider, ignore: bool=  true): void  描述:使碰撞检测系统忽略所有 collider1 和 collider2 之间的任何碰撞。  这是最有用的,如投射物不与发射他们的物体碰撞。  IgnoreCollision 有一些限制:1)它不是持久的.  这个以为着当保存场景时,忽略碰撞  状态将不会存储在编辑器重。2)你只能将忽略碰撞应用到激活物体的碰撞器上.  当不 激活  碰撞器或附加的刚体时,IgnoreCollision 将丢失并且你必须再次调用 Physics.IgnoreCollision.  //实例化一个子弹并使它忽略与这个物体的碰撞  var bulletPrefab: Transform;  function Start()  {  var bullet=Instantiate(bulletPrefab);  Physics.IgnoreCollision(bullet.collider, collider);  }  ◆  static function Linecase(start: Vector3, end: Vector3, la yerMask: int=  kDefaultRaycastLayers): bool  描述:如果有任何碰撞器与从 start 开始到 end 的线段相交时返回真.  var target: Transform;  function Update(){  if(!Physics.Linecast(transform.position, target.position}){  //做一些事情  }  }  当投射射线时,Layer mask 被用来选择性的忽略碰撞器.  ◆   static  function  Linecase(start:  Vector3,  end:  Vector3,  out  hitInfo:  RaycastHit,  layerMask:   int=kDefaultRaycastLayers): bool  描述:如果有任何碰撞器与从 start 开始到 end 的线段相交时返回真.  如果返回真,hitInfo 将包含更多关于碰撞器被碰到什么地方的信息(参考:RaycastHit).  当投射射线时,Layer mask 被用来选择性的忽略碰撞器.  ◆  static function OverlapSphere(position: Vector3, r adius: float, layerMask: int=  kAllLayers): Collider[]  描述:返回触碰到的或在球体内的所有碰撞器的列表.  注意:当前这个值检查碰撞器的包围体耳不是实际的碰撞器。  ◆   static  function  Raycast(origin:  Vector3,  direction:  Vector3,  distance:  float=Mathf.Infinity,  layerMask: int=kDefaultRaycastLayers): bool  参数  origin  世界坐标中射线的开始点。      direction  射线的方向。  distance  射线的长度。  layerMask  当投射射线时,layer mask 被用来选择性的忽略碰撞器.  返回:布尔值‐当射线碰到任何碰撞器时为真,否则为假.  描述:投射一个射线与场景中的所有碰撞器相交。  function Update(){  var hit: RaycastHit;  var fwd=transform.TransformDirection(Vector3.forward);  if(Physics.Raycast(transform.position, fwd, 10))  {  pring("There is something in front of the object!");  }  }  ◆  static function Raycast(origin: Vector3, direction: Vector3, out hitInfo: RaycastHit,  distance: float=Mathf.Infinity, layerMask: int=kDefaultRaycastLayers): bool  参数  origin  世界坐标中射线的开始点。  direction  射线的方向。  distance  射线的长度。  hitInfo  如果返回真,hitInfo 将包含更多关于碰撞器被碰到什么地方的信息(参  考: RaycaseHit).  layerMask  当投射射线时,layer mask 被用来选择性的忽略碰撞器.  返回:布尔值‐当射线碰到任何碰撞器时为真,否则为假.  描述:投射一个射线并碰撞场景中的所有碰撞器闭并返回碰撞的细节。  function Update(){  var hit: RaycastHit;  if(Physics.Raycast(transform.position, ‐Vector3 up, hit)){  distanceToGround=hit.distance;  }  }  //向上投射 100 米  function Update()  {  var hit: RaycastHit;  if(Physics.Raycast(transform.position, ‐Vector3 up, hit, 100.0)){  distanceToGround=hit.distance;  }  }  ◆  static function Raycast(ray: Ray, distance: float=Mathf.Infinity, layerMask: int=  kDefaultRaycastLayers): bool  参数  ray  射线的开始点和方向。  distance  射线的长度。  layerMask  当投射射线时,layer mask 被用来选择性的忽略碰撞器.      返回:布尔值‐当射线碰到任何碰撞器时为真,否则为假.  描述:同上使用 ray.origin 和 ray.direction 而不是 origin 和 direction.  var ray=Camera.main.ScreenPointToRay(Input.mousePosition);  if(Physics.Raycast(ray, 100)){  print("Hit something");  }  ◆  static function Raycast(ray: Ray, out hitInfo: RaycastHit, distance: float=Mathf.Infinity,   layerMask: int=kDefaultRaycastLayers): bool  参数  ray  射线的开始点和方向。  distance  射线的长度。  hitInfo  如果返回真,hitInfo 将包含更多关于碰撞器被碰到什么地方的信息(参  考:RaycastHit)  layerMask  当投射射线时,layer mask 被用来选择性的忽略碰撞器.  返回:布尔值‐当射线碰到任何碰撞器时为真,否则为假.  描述:同上使用 ray.origin 和 ray.direction 而不是 origin 和 direction.  var ray=Camera.main.ScreenPointToRay(Input.mousePosition);  var hit: Ra ycastHit;  if(Physics.Raycast(ray, hit, 100)) {  Debug.DrawLine(ray.origin, hit.point);  }  ◆  static function RaycastAll(ray: Ray, distance: float=Mathf.Infinity, layerMask: int=  kDefaultRaycastLayers): RaycastHit[]  ◆  static function RaycastAll(origin: Vector3, direction: Vector3, distance: float=  Mathf.Infinity, layerMask: int=kDefaultRaycastLayers): RaycastHit[]  描述:投射一个穿过场景射线并返回所有的碰撞的东西。  function Update(){  var hit: RaycastHit[];  hits=Physics.RaycastAll(transform.position,transform.forward, 100.0);  //改变所有碰到的碰撞器的材质  //使用一个透明 Shader  for(var i=0,i lastInterval + updateInterval) {    fps = frames / (timeNow – lastInterval);    frames = 0;    lastInterval = timeNow;    }    }  ◆  static var smoothDeltaTime : float    描述:  一个平滑的 Time.deltaTime(只读)。   ◆  static var time : float     描述:  该帧开始的时间(只读)。从游戏开始到现在的时间。    在 MonoBehaviour 的 FixedUpdate 内部调用时,返回 fixedTime 属性。  //如果  Fire1 按钮(默认为 Ctrl)被按下,每 0.5 秒实例化一个 projectile。    var projectile : GameObject;    var fireRate = 0.5;    private var nextFire = 0.0;    function Update () {     if(Input.GetButton(“Fire1”) && Time.time > nextFire) {       nextFire = Time.time + fireRate;    clone = Ins tantiate(projectile, transform.position, transform.rotation);     }    }  ◆  static var timeScale : float    描述:  传递时间的缩放,可以用来减慢动作效果。    当 timeScale 为 1.0 的时候时间和真实时间一样快;当 timeScale 为 0.5 的时候时间 为真实时间的一半速度;当 timeScale 被设置为 0 的时候那么游戏基本上处于暂停状态,如 果所有函数都是与帧率无关的。如果降低 timeScale 建议同时降低 Time.fixedDeltaTime 相同 的量。当 timeScale 被设置为 0 时 FixedUpdate 将不会被调用。  //当用户按下 Fire1 按钮时可以在 1 和 0.7 之间切换时间。    function Update () {     if(Input.GetButton(“Fire1”)) {    if(Time.timeScale == 1.0) {  Time.timeScale = 0.7;    }    else {  Time.timeScale = 1.0;    }    //根据 timeScale 调整固定增量时间    Time.fixedDeltaTime = 0.02 * Time.TimeScale;    }    }      ◆  static var timeSinceLevelLoad : float    描述:  该帧开始的时间(只读)。最后一个关卡被加载到现在的时间。  //设置 GUI 文本为玩家完成该关卡的时间。    function PlayerCompletedGame () {     guiText.text = Time. timeSinceLevelLoad.ToString;    }  Vector2    结构    表示 2D 向量和点。    这个在某些地方用来表示2D位置和向量(例如,在Mesh中的纹理坐标或者Material 中的纹理偏移)。在大多数情况下使用一个 Vector3。  变量  ◆  var magnitude : float    描述:  返回这个向量的长度(只读)。    向量的长度是(x*x+y*y)的平方根。    如果你只需要比较向量的长度,你可以使用 sqrMagnitude(计算长度的平方式比较 快的)比较它们的平方。    参见: sqrMagnitude  ◆  var sqrMagnitude : flaot    描述:  返回这个向量长度的平方(只读)。    计算长度的平方比 magnitude 更快。通常如果你只比较两个向量的长度你可以只 比较它们的长度的平方。    参见: magnitude  ◆  var this[index : int] : float    描述:  分别使用 0 或 1 来访问 x 和 y 组件。  Vector2 p;    p[1] = 5; //与 p.y = 5 相同  ◆  var x : float     描述:  该向量的 x 组件。  ◆  var y : float    描述:  该向量的 y 组件。  构造函数  ◆  static function Vector2 (x : float, y : float) : Vector2    描述:  用指定的 x,y 组件构造一个新的向量。  函数  ◆  function ToString () : String    描述:  返回格式化好的 Vector 字符串。  类变量  ◆  static var right : Vector2    描述: V ector2(1,0)的简写。  ◆  static var up : Vector2    描述: Vector2(0,1)的简写。  ◆  static var zero : Vector2    描述: Vector2(0,0)的简写。      类方法  ◆  static function Distance(a:Vector2, b:Vector2):float    描述:  返回 a 和 b 之间的距离。    Vector2.Distance(a,b)和(a‐b).magnitude 相同。  ◆  static function Dot(lhs:Vector2, rhs:Vector2):float    描述: 2 个向量的点乘。    返回 lhs.rhs.    对于规范化的向量,如果它们指向相同的方向 Dot 返回 1;如果指向相反的方向返 回‐1;在另外的情况下返回一个数字(例如,如果向量垂直则 Dot 返回 0)。  ◆  static operator* (a:Vector2, d:float):Vector2    描述:  用一个数乘以一个向量。    用 d 乘以 a 的每个组件。    //  使向量变为二倍长;打印(2.0, 4.0)    print (Vector2(1,2) * 2.0);  ◆  staic operator* (d:float, a:Vector2):Vector2    描述:  用一个数乘以一个向量。    用 d 乘以 a 的每个组件。  //  使向量变为二倍长;  打印(2.0, 4.0)    print(2.0 * Vector2(1, 2));  ◆  static operator + (a:Vector2, b:Vector2):Vector2    描述:  两个向量相加。    将对应的组件加在一起。    //  打印(3.0, 5.0)    print(Vector2(1,2) + Vector2(2,3));  ◆  static operator–(a:Vector2, b:Vector2):Vector2    描述:  两个向量相减。    从 a 中减去 b 的每个对应组件。    //  打印(‐2.0, 0.0)    print(Vector2(1,2)–Vector2(3,2));  ◆  static operator–(a:Vector2):Vector2    描述:  向量取反。    结果中的每个组件都被取反。    //  打印(‐1.0, ‐2.0)    print(‐Vector2(1,2);  ◆  static operator/(a:Vector2, d:float):Vector2    描述:  用一个数除以一个向量。    用 d 除以 a 的每个组件。    //  使向量缩短一倍;打印(0.0, 1.0)    print(Vector2(1,2)/2.0);  ◆  static operator==(lhs:Vector2, rhs:float):Vector2    描述:  如果向量相等返回 true。    对于非常接近相等的向量,这个也返回 true。  ◆  static implicit function Vector2(v:Vector3):Vector2    描述:  把一个 Vector3 转化成 Vector2。        Vector3 可被隐式的转化为 Vector2(z 被丢弃)。  ◆  static implicit function Vector3(v:Vector2):Vector3    描述:  把一个 Vector2 转化成 Vector3。    Vector2 可被隐式的转化为 Vector3(z 被默认设置成 0)。  ◆  static function Scale(a:Vector2, b:Vector2):Vector2    描述:  两个向量组件相乘    结果中的每个组件都是 a 中的一个组件乘以 b 中相同的组件。    //  打印(2.0, 6.0)    print(Vector2.Scale(Vector2(1,2), Vector2(2,3)));  Vector3  结构    表示 3D 的向量和点。    这个结构被用在这个 Unity 中传递 3D 位置和方向,它也包含函数来做普通的向量 操作。  变量  ◆  var magnitude : float    描述:  返回这个向量的长度(只读)。    向量的长度是(x*x+y*y+z*z)的平方根。    如果你只需要比较向量的长度,你可以使用 sqrMagnitude(计算长度的平方根是较 快的)比较它们的长度平方。    参见: sqeMagnitude  ◆  var normalized : Vector3    描述:  返回这个向量,并且 magnitude 为 1(只读)。    规范化之后,一个向量保持相同的方向但是它的长度为 1.0。    注意当前的向量不改变并返回一个新的规范化向量,如果你像规范化当前向量, 使用 normalized 函数。    如果这个向量太小以至于不能规范化,将返回一个零向量。    参见: Normalize 函数  ◆  var sqeMagnitude : float    描述:  返回这个向量长度的平方(只读)。    计算长度的平方比 magnitude 更快。通常如果你只比较两个向量的长度你可以只 比较它们的平方。    //  检测当一个变化比 closeDistance 更接近    //  这个比使用 Vector3 magnitude 更快    var other : Transform;    var closeDistance = 5.0;    function Update() {     if(other) {    var sqeLen = (other.position – transform.position).sqrMagnitude;    //  平方我们需要比较的距离    if(sqrLen < closeDistance * closeDistance)  print(“The other transform is close to me!”);    }  }        参见: magnitude  ◆  var this[index : int] : float    描述:  分别使用[0],[1],[2]访问 x,y,z 组件。    Vector3 p;    p[1] = 5; //与 p.y = 5 相同  ◆  var x : float    描述:  该向量的 x 组件。  ◆  var y : float    描述:  该向量的 y 组件。  ◆  var z : float    描述:  该向量的 z 组件。  构造函数  ◆  static function Vector3(x : float, y : float, z : float) : Vector3    描述:  用给定的 x,y,z 组件构建一个新的向量。  ◆  static function Vector3(x : float, y : float) : Vector3    描述:  用给定的 x,y 组件构建一个新的向量并设置 z 为 0。  函数  ◆  function Normalize() : void    描述:  使该向量的 magnitude 为 1。    规范化之后,一个向量保持相同的方向但是它的长度为 1.0。    注意这个函数将改变当前向量。如果你想保持当前向量不改变,使用 normalized 变量。    如果这个向量太小以至于不能规范化,它将被设置为 0.    参见: normalized 变量  ◆  function Scale(scale : Vector3) : void    描述:  用 scale 的组件乘以这个向量中的每个对应组件。  ◆  static function Scale(a : Vecotr3, b : Vector3) : Vecotr3    描述:  两个向量的组件相乘。    结果中的每个组件是 a 中的一个组件乘以 b 中的相对应组件。    //  打印(2.0, 6.0, 12.0)    print(Vector3.Scale(Vector3(1,2,3), Vector3(2,3,4)));  ◆  function ToString() : string    描述:  返回 格式化好的 Vector3 字符串。  类变量  ◆  static var forward : Vector3    描述: Vector3(0, 0, 1)的简写。    transform.position += Vector3.forward * Time.deltaTime;  ◆  static var one : Vector3    描述: Vector3(1, 1, 1)的简写。    transform.position = Vector3.one;  ◆  static var right : Vector3    描述: Vector3(1, 0, 0)的简写。    transform.position += Vector3.right * Time.deltaTime;  ◆  static var up : Vector3        描述: Vector3(0, 1, 0)的简写。    transform.position += Vector3.up * Time.deltaTime;  ◆  static var zero : Vector3    描述: Vector3(0, 0, 0)的简写。    transform.position += Vector3.zero;  类方法  ◆  static function Angle(from : Vector3, to : Vector3) : float    描述:  返回 from 和 to 之间的角度。    //  如果这个变化的 z 轴看向 target    //  打印”close”    var  target : Transform;    function Update() {     var targetDir = target.position – transform.position;    var forward = transform.forward;    var angle = Vector3.Angle(targetDir, forward);    if(angle < 5.0)    print(“close”);    }  ◆  static function Cross(lhs : Vector3, rhs : Vector3) : float    描述:  两个向量的叉乘。    返回 lhs x rhs。  ◆  static function Distance(a : Vector3, b : Vector3) : float    描述:  返回 a 和 b 之间的距离。  Vector3.Distance(a, b)与(a  –  b).magnitude 相同。    var other : Transform;    if(other) {     var dist = Vector3.Distance(other.position, transform.position);    print(“Distance to other: ” + dist);    }  ◆  static function Dot(lhs : Vector3, rhs : Vector3) : float     描述:  两个向量的点乘。    返回 lhs.rhs。    对于 normalized 的向量,如果它们指向相同的方向 Dot 返回 1;如果指向完全相反 的方向则返回‐1;在另外的情况下返回一个数字(例如,如果向量垂直则 Dot 返回 0)。    对于任意长度的向量 Dot 返回的值是相同的。当两个向量的角度增加的时候,这 个值会变大。    //  检测是否有其他变换在这个物体之后    var other : Transform;    function Update() {     if(other) {    var forward = transform.Transform.Distance(Vector3.forward);       var toOther = other.position;    transform.position;    if(Vector3.Dot(forward, toOther) < 0)      print(“The other transform is behind me!”);     }    }  ◆  static function Lerp(from : Vector3, to : Vector3, t : float) : Vector3    描述:  在两个向量之间找到线性插值。    从 from 到 to 基于 t 插值。    t 被裁剪到(0…1)之间。当 t 为 0 时返回 from,当 t 为 1 时返回 to。当 t = 0.5 时 返回 from 和 to 的平均值。    //  在一秒内从 from 开始移动到 to 结束    var  start : Transform;    var end : Transform;    function Update() {     transform.position = Vector3.Lerp(start.position, end.position, Time.time);    }    //  像一个弹簧一样跟随 target 位置    var target : Transform;    var smooth = 5.0;    function Update() {     transform.position  =  Vector3.Lerp(transform.position,  target.position,  Time.deltaTime * smooth);    }  ◆  static function Max(lhs : Vector3, rhs : Ve ctor3) : Vector3    描述:  返回由 lhs 和 rhs 中最大组件组成的向量。    var a = Vector3(1,2,3);    var b = Vector3(4,3,2);    print(Vector3.Max(a,b)); //打印(4.0, 3.0, 3.0);    参见: Min 函数  ◆  static function Min(lhs : Vector3, rhs : Vector3) : Vector3    描述:  返回由 lhs 和 rhs 中最小组件组成的向量。  var a = Vector3(1,2,3);    var b = V ector3(4,3,2);    print(Vector3.Min(a,b)); //打印(1.0, 2.0, 2.0);    参见: Max 函数  ◆  static operator != (lhs : Vecotr3, rhs : Vecotr3) : bool    描述:  如果向量不同返回 true。    非常接近的向量被认为是相等的。    var other : Transform;    if(other && transform.position != other.position) {     print(“I’m at the different place than the other transform!”);    }  ◆  stat ic operator * (a : Vector3, d : float) : Vector3    描述:  用一个数乘以一个向量。    用 d 乘以 a 的每个组件。    print(Vector3(1,2,3) * 2.0); //使向量变为二倍长,打印(2.0, 4.0, 6.0)      ◆  static operator * (d : float , a : Vector3) : Vector3    描述:  用一个数乘以一个向量。    用 d 乘以 a 的每个组件。    print(Vector3(1,2,3) * 2.0); //使向量变为二倍长,打印(2.0, 4.0, 6.0)    ◆  static operator + (a : Vector3, b : Vector3) : Vector3    描述:  两个向量相加。    将对应的组件加在一起。    //  打印(5.0, 7.0, 9.0)    print(Vector3(1,2,3) + V ector3(4,5,6));    ◆  static operator ‐ (a : Vector3, b : Vector3) : Vector3    描述:  两个向量相减。    将 a 与 b 对应的组件相减。    //  打印(‐5.0, ‐3.0, ‐1.0)    print(Vector3(1,2,3) ‐ Vector3(6,5,4));    ◆  static operator ‐ (a : Vector3) : Vector3    描述:  向量取反。    将 a 中的每个组件都取反。    //  打印(‐1.0, ‐2.0, ‐3.0)    print(Vector3(1,2,3));    ◆  stat ic operator / (a : Vector3, d : float) : Vector3    描述:  用一个数除以一个向量。    用 d 除以 a 的每个组件。    //  使向量缩短一倍,打印(0.5, 1.0, 1.5)    print(Vector3(1,2,3) / 2.0);  ◆  static operator == (lhs : Vector3, rhs : Vector3) : bool    描述:  如果向量相等返回 true。    对于非常接近相等的向量,这个也返回真。    var other : Transform;    if(other && tr ansform.position == other.position) {     print(“I’m at the same place as the other transform”);    }  ◆  static function OrthoNormalize(ref normal : Vector3, ref tangent : Vector3) : void    描述:  使两个向量规范化并互相正交。    规范化 normal;规范化 tangent 并确保它正交于 normal(就是说,它们之间的角 度是 90 度)。    参见: Normalize 函数  ◆  static  function  OrthoNormalize(ref  normal  :  Vector3,  ref  tangent  :  Ve ctor3,  ref  binormal : Vector3) : void    描述:  使两个向量规范化并互相正交。    规范化 normal;规范化 tangent 并确保它与 normal。规范化 binormal 并确保它与     normal 和 tangent 正交。    参见: Normalize 函数  ◆  static function Project(vector : Vector3 , onNormal : Vector3) : Vector3    描述:  投影一个向量到另一个向量。    返回投影到 onNormal 上的 vector。如果 onNormal 接近零,返回零矩阵。  ◆  static function Reflect(inDirection : Vector3, inNormal : Vector3) : Vector3    描述:  沿着法线反射这个向量。    返回的值 inDirection 从以 inNormal 为法线的表面反射。    var originalObject : Transform;    var reflectedObject : Tr ansform;    function Update() {     //  使反射物体与凡是物体沿着世界的 z 轴镜像反射    reflectedObject.position = Vector3.Reflect(originalObject.position, Vector3.right);  }  ◆  static function RotateTowards(from : Vector3, to : Vector3, maxRadiansDelta : float,  maxMagnitudeDelta : float) : Vector3    描述:  旋转一个向量 from 到 to。    该向量将被在一个弧线上旋转而不是线形插值。本质上与 Vector3.Slerp 相同,但 是这个函数将确保角速度和长度的改变不会超过 maxRadiansDelta 和 maxMagnitudeDelta。  ◆  function Scale(scale : Vector3) : void    描述:  用 sacle 的组件乘以这个向量中的每个对应组件。  ◆  static function Scale(a : Vector3, b : Vector3) : Vector3    描述:  两个向量组件相乘。    结果中的每个组件是 a 中的一个组件乘以 b 中相对应的组件。    //  打印(2.0, 6.0, 12.0)    print(Vector3.Scale(Vector3(1,2,3), Vector3(2,3,4)));  ◆  static function Slerp(from : Vector3, to : Vector3, t : float) : Vector3    描述:  在两个向量之间球形插值。    从 from 到 to 基于 t 插值,返回向量的 magnitude 将在 from 和 to 的长度之间插值。    t 被裁剪到[0…1]之间。    //  在 sunrise 和 sunset 之间以弧线变换一个位置    var sunrise : Transform;    var sunset : Transform;    function Update() {     //  弧线的中心     var center = (sunrise.position – sunset.position) * 0.5;    //  向下移动一点中心使该弧线垂直    center.y ‐= 1;    //相对于中心插值这个弧线    var riseRelCenter = sunrise.positioni – center;    var setRelCenter = sunse t.position – center;    transform.position = Vector3.Slerp(riseRelCenter, setRelCenter. Time.time);    transform.position += center;    }        参见: Lerp 函数  Vector4    结构    表示四维向量。    这个结构被用在一些地方来表示四个组件的向量(例如,网格切线,shader 的参 数)。在其他的一些地方使用 Vector5。    变量  ◆  var magnitude : float    描述:  返回这个向量的长度(只读)。    向量的长度是(x*x+y*y+z*z+w*w)的平方根。    如果你只需要比较向量的长度,你可以使用 sqrMagnitude(计算长度的平方是比 较快的)比较它们的长度平方。    参见: sqrMagnitude  ◆  var normalized : Vector4    描述:  返回这个向量,并且 magnitude 为 1(只读)。    注意当前的向量不改变并返回一个新的规范化的向量。如果你像规范化当前向量, 使用 Normalize 函数。    如果这个向量太小以至于不能规范化,将返回一个零向量。    参见: Normalize 函数。  ◆  var sqrMagnitude : float    描述:  返回这个向量的长度的平方(只读)。    计算长度的平方比 magnitude 更快。    参见: magnitude  ◆  var this[index : int] : float    描述:  分别使用[0],[1],[2],[3]访问 x,y,z,w 组件。    Vector4 p;    p[3] = 5; //  与 p.w = 5 相同  ◆  var w : float    描述:  该向量的 w 组件。  ◆  var x : float    描述:  该 向量的 x 组件。  ◆  var y : float    描述:  该向量的 y 组件。  ◆  var z : float    描述:  该向量的 z 组件。  构造函数  ◆  static function Vector4 (x : float, y : float, z : float, w : float) : Vector4    描述:  用给定的 x,y,z,w 组件构建一个新的向量。  ◆  static function Vector4 (x : float, y : floa t, z : float) : Vector4    描述:  用给定的 x,y,z 组件构建一个新的向量并设置 w 为 0。  ◆  static function Vector4 (x : float, y : float) : Vector4    描述:  用给定的 x,y 组件构建一个新的向量并设置 z 和 w 为 0。  函数      ◆  function Normalize() : void    描述:  使该向量的 magnitude 值为 1。    注意这个函数将改变当前向量。如果你想保持当前向量不改变,使用 normalized 变量。    如果这个向量太小以至于不能规范化,它将被设置为 0。    参见: normalized 变量  ◆  function Scale(scale : Vector4) : void    描述:  用 scale 的组件乘以这个向量中的每个对应组件。  ◆  static function Scale(a : Vector4, b : Vector4) : Vector4    描述:  两个向量的组件相乘。    结果中的每个组件是 a 中的一个组件乘以 b 中相同的组件。    //  打印(2.0, 6.0, 12 .0, 12.0)    print(Vector4.Scale(Vector4(1,2,3,4), Vector4(2,3,4,5)));  ◆  function ToString() : String    描述:  返回格式化好的 vector 字符串  类变量  ◆  static var one : Vector4    描述: Vector4(1,1,1,1)的简写。  ◆  static var zero : Vector4    描述: Vector4(0,0,0,0)的简写。  类方法  ◆  static function Distance(a : Vector4, b : Vector4) : float    描述:  返回 a 和 b 之间的距离。    Vector4 Distance(a,b)和(a‐b).magnitude 相同。  ◆  static function Dot(lhsVector4, rhsVector4) : float    描述:  两个向量的点乘。    返回 lhs.rhs。  ◆  static function Lerp(from : Vector4, to : Vector4, t : float) : Vector4    描述:  在两个向量之间线形插值。    从 from 到 to  基于 t 插值。    t 被裁剪到[0…1]之间,当 t 为 0 时返回 from,当 t 为 1 时返回 to,当 t = 0.5 时返 回 from 与 to 的平均值。  ◆  static operator != (lhs : Vector4, rhs : Vector4) : bool    描述:  如果向量不同返回真。    非常接近的向量被认为是相等的。  ◆  static operator * (a : Vector4, d : float) : Vector4    描述:  用一个数乘以一个向量。    用 d 乘以 a 的每个组件。    //  使向量变为二倍长,打印(2.0, 4.0, 6.0, 8.0)    print(Vector4(1,2,3,4) * 2.0);  ◆  static oper ator * (d : float, a : Vector4) : Vector4    描述:  用一个数乘以一个向量。    用 d 乘以 a 的每个组件。    //  使向量变为二倍长,打印(2.0, 4.0, 6.0, 8.0)        print(2.0 * Vector4(1,2,3,4));  ◆  static operator + (a : Vector4, b : Vector4) : Vector4    描述:  两个向量相加。    将对应的组件加在一起。    //  打印(5.0, 7.0, 9.0, 11.0)    print(Vector4(1,2,3,4) + Vector4(4,5,6,7));  ◆  static operator ‐ (a : Vector4, b : Vector4) : Vector4    描述:  两个向量相减。    从 a 中减去 b 中每个对应的组件。    //  打印(‐5.0, ‐3. 0, ‐1.0, 1.0)    print(Vector4(1,2,3,4) + Vector4(6,5,4,3));  ◆  static operator ‐ (a : Vector4) : Vector4    描述:向量取反。    a 中的每个组件都被取反。    //  打印(‐4.0, ‐3.0, ‐2.0, ‐1.0)    print(‐Vector4(4,3,2,1));  ◆  static operator / (a : Vector4, d : float) : Vector4    描述:  用一个数除以一个向量。    从 d 除以 a 中每个组件。    //  使向量缩短一半,打印(0.5, 1.0, 1.5, 2.0)     print(Vector4(1,2,3,4) / 2.0);  ◆  static operator == (lhs : Vector4, rhs : Vector4) : bool    描述:  如果向量相等返回 true。    对于非常接近相等的向量,这个也返回 true。  ◆  static implicit function Vector3(v : Vector4) : Vector3    描述:  把一个 Vector4 转换为一个 Vector3。    Vector4 可以被隐式转换成 Vector3(w 被丢弃)。    function Start() {     // shader 总是 Vector4。但是这个值被转化成一个 Vector3。    var value : Vector3 = renderer.material.GetVector(“_SomeVariable”);    }  ◆  static implicit function Vector4(v : Vector3) : Vector4    描述:  把一个 Vector3 转换为一个 Vector4。    Vector3 可以被隐式转换成 Vector4(w 被设置为 0)。    function Start() {     // shader 总是 Vector4。这个值从一个 Vector3 转换为一个 Vector4。    var value : Vector3 = Vector3.one;    renderer.material.SetVector(“_SomeVariable”, value);    }  ◆  static function Project(a : Ve ctor4, b : Vector4) : Vector4    描述:  投影一个向量到另一个向量。    返回投影到 b 的 a。  ◆  static Scale(scale : Vector4) : void    描述:  用 scale 的组件乘以这个向量中的每个对应组件。      ◆  static function Scale(a : Vector4, b : Vector4) : Vector4    描述:  两个向量的组件相乘。    结果中每个组件都是 a 中的一个组件乘以 b 中的对应组件。    //  打印(2.0, 6.0, 12.0 , 20.0)    print(Vector4.Scale(Vector4(1,2,3,4), Vector4(2,3,4,5)));  WWWFrom    类    辅助类。用来生成表单数据并使用 WWW 类传递到 web 服务器。    //  获取一个截屏并上传到 CGI 脚本  //  该 CGI 脚本必须能处理表单上传    var screenshotURL = “http://www.my‐site.com/cgi‐bin/screenshot.pl”;    //  截屏    function Start() {     UploadPNG();  }    function UploadPNG () {    yield WaitForEndOfFrame();  //  我们应该只在所有渲染完成后读取屏幕    var width = Screen.width;    var height = Screen.height;    var tex = new Texture2D(width, height, TextureFormatRGB24, false);  //  创建屏幕 大小的纹理,RGB24 格式    //读取屏幕内存到纹理    tex.ReadPixels(Rect(0, 0, width, height), 0, 0);    tex.Apply();    //  编码纹理为 PNG    var bytes = tex.EncodeToPNG();    Destroy(tex);    //  创建一个 Web 表单    var form = new WWWForm();    form.AddField(“frameCount”, Time.frameCount.ToString());    form.AddBinaryData(“fileUpload”, bytes, “screenshot.png”, “image.png”);    //  上传到一个 CGI 脚本    var w = WWW(screenShotURL, form);    yield w;    if(w.error != null) {    print(w.error);    } else {    print(“Finished Uploading Screenshot”);  }    }    这里是一个简单的 Perl 脚本用处理存贮在 SQL 数据库中的高分表    //  这个例子假设玩家已经输入了他的名称到一个 name 变量中并且 score 包含玩家的 当前分数  var highscore_url = “http://www.my‐site.com/highscore.pl”;      function Start() {    //  创建一个表单来发送高分数据到服务器    var form = new WWWForm();    //  假设 perl 脚本为不同的游戏管理高分    form.AddField(“game”, “MyGameName”);    //  玩家提交的名称    form.AddField(“playerName”, name);    //  分数    form.AddField(“score”, score);    //创建一个下载对象    var download = new WWW(highscore_url, form);    //等待直到下载完成    yield download;    if(download.error) {    print(“Error downloading “ + download.error);     } else {       //  显示高分     }  }    这里是一个单间的 Perl 脚本用来处理存贮在 SQL 数据库中的高分表    #/usr/bin/perl    #SQL 数据库需要有一个称为 highscores 的表    #  看起来像这样  #CREATE TABLE highscores (    #game varchar(255) NOT NULL,    #player varchar(255) NOT NULL,    #score integer NOT NULL    # );  use strict;    use CGI;    use DB1;    #  读取表单数据    my $cgi = new CGI;    #  来自高分脚本的结果将是 in 纯文本格式    print $cgi ‐> header(“text/plain”);    my $game = $cgi ‐> param(‘game’);    my $playeName = $cgi ‐> param(‘playerName’);    my $score = $cgi ‐> param(‘score’);    exit 0 unless $game; #这个参数被请求链接到一个数据库    my  $dbh  =  DB1 ‐>  connect(‘DB1.mysql.databasename’,  ‘username’,  ‘password’)  ||  die  “Could not connect to database: $DB1::errstr”;    #  如果插入玩家分数 if    if($playerName && $score) {     $dbh ‐> do(“insert into highscores(game, player, score) values(?,?,?)”, undef, $game,      $playerName, $score);    }    #  取回高分    my  $sth  =  $dbh ‐>  prepare(“SELECT  player,  score  FROM  highscores  WHERE  game=?  ORDER BY score desc LIMIT 10”);    #dbh ‐> execute($game);    while(my $r = $sth ‐> fetchrow_arrayref) {     print join(‘.’, @$r), “\n”    }    变量  ◆  var data : byte[]    描述:  (只读)在发送表单的时候原始数据作为 POST 请求被发送。    通常,你只需要直接将 WWWForm 对象传递给 WWW 构造函数,但是如果你像改 变发送到 web 服务器的头,你将需要这个变量。    参见: headers 变量    var form = new WWWForm();    form.AddField(“name”, “value”);  var headers = form.headers;    var rawData = form.data;    //  给请求添加一个自定义的头,在这里用一个简单的授权来访问密码保护的资源  header[ “ Authorization ” ]= ” Basic ” +System.Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(“username:password));   //  用自定义的头传递一个请求到 URL    var www= new WWW(url, rawData, headers);    yield www;    //  这里处理 WWW 请求结果…  ◆  var  headers : Hashtable    描述:  (只读)为使用 WWW 类传递的表单返回一个正确的请求头。    这个域只包含一个头,/”Content‐Type”/,它被设置为正确的 mine 类型。” application/x‐www‐form‐urlencoded”用于普通的表单,”multipart/form‐data”用于使用 AddBinaryData 添加数据的表单。    var form = new WWWForm();    form.AddField(“name”, “value”);    var headers = form.headers;    var rawData = form.data;    //  给请求添加一个自定义的头,在这里用一个简单的授权来访问密码保护的资源  header[ “ Authorization ” ]= ” Basic ” +System.Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(“username:password));    //  用自定义的头传递一个请求到 URL  var www= new WWW(url, rawData, headers);    yield www;    //  这里处理 WWW 请求结果…  构造函数  ◆  static function WWWForm() : WWWForm        描述:  创建一个空的 WWWForm 对象。    使用 AddField 和 AddBinaryData 方法向表单中插入数据。    参见: WWW 类  函数  ◆  function AddBinaryData(fieldname : string, contents : byte[], filename : string = null,   mimeType : string = null) : void    描述:  添加二进制数据到表单。    使用这个函数来上传文件和图片到 web 服务器,注意数据从字节数组中读取而不 是从一个文件中读取。fileName 参数用来告诉服务器用什么文件名来保存上传的文件。    如果 mimeType 没有给出,并且数据的前 8 字节与 PNG 格式头相同,然后数据用” image/png”mimetype 发送,否则它将用”application/octet‐stream”mimetype 发送。  ◆  function  AddField(filename  :  string,  value  :  string,  e  :  Encoding  =  System.Text.Encoding.UTF8) : void    描述:  添加一个简单的域到表单。    用给的字符串值添加域 fileName。  ◆  function AddField(filedName : string, i : int) : void    描述:  添加一个简单的域到表单。    用给定的 X 形值添加域 filedName。一个简单的方法是调用 AddField(fieldname,  i.ToString)。  WWW    类,集成自 IDisposable    简单地访问 web 页。    这个是一个小的工具模块可以用来取回 URL 的内容。    通过调用 WWW(url)在后台开始一个下载,它将返回一个 WWW 物体。    你可以检查 isDone 属性来查看下载是否完成,或者 yield 下载 物体来自动等待,直 到它被下载完成(不会影响游戏的其余部分)。    如果你像从 web 服务器上获取一些数据例如高分列表或者调用主页,可以使用这 个,也有一些功能可以使用从 web 上下载的图片来创建一个纹理,或者下载或加载新的 web 播放器数据文件。    WWW 类可以用来发送 GET 和 POST 请求到服务器,WWW 类默认使用 GET,如果 提供一个 postData 参数就使用 POST。    参见: WWWForm 为 postData 参数构建可用的表单数据。    //  从时代广场上的外部”Friday’s”  web 摄像头获取最新的数据    var url = “http://images.earthcam.com/ec_metros/ourcams/fridays.jpg”;    function Start() {     //  开始下载给定的 URL    var www : WWW = new WWW(url);    //  等待下载完成     yield www;    //赋值纹理    renderer.material.mainTexture = www.texture;    }  变量  ◆  var assetBundle : AssetBundle        描述:  从工程文件中下载一个可以包含任意类型资源的 AssetBundle。    function Start() {    var www = new WWW(“http://myserver/myBundle.unity3d”);    yield www;     //  获取制定的主资源并实例化它    Instantiate(www.assetBundle.mainAsset);    }    参见: AssetBundle 类。  ◆  var audioClip : AudioClip    描述:  从下载的数据生成一个 AudioClip(只读)。    该数据必须是一个 Ogg Vorbis 格式的音频剪辑。    即使音频没有完全下载完成,这个也立即返回,允许你开始播放已经下载完成的 部分。  var url : String;    function Start() {    www = new WWW(url);    audio.clip = www.audioClip;  }  function Update() {    if(!audio.isPlaying && audio.clip.isReadyToPlay) {    audio.Play();    }  }  ◆  var bytes : byte[]    描述:  将取回的 web 页内容作为一个字节数组返回(只读)。    如果物体还没有完成数据的下载,它将返回一个空字节数组。使用 isDone 或者 yield 来查看数据是否可用。    参见: data 属性  ◆  var data : string    描述:  将取回的 web 页内容作为一个字符串返回(只读)。    如果物体还没有完成数据的下载,它将返回一个空字符串。使用 isDone 或者 yield 来查看数据是否可用。    这个函数期望网页内容是 UTF‐8 或者 ASCII 字符 集。对于其他字符或者二进制数据 返回的字符串也许是不正确的。在这些情况下,使用 bytes 属性来获取原始字节数组。    参见: bytes 属性  ◆  var error : string    描述:  如果下载的时候出现了一个错误,返回错误信息(只读)。    如果没有错误,error 将返回 null。    如果物体没有下载完成,它将被阻止直到下载完成。使用 isDone 或 yield 来查看数 据是否可用。    //  用一个无效的 URL 获取一个纹理    var url = “invalid_url”;    function Start() {    //  开始下载给定的 URL        var www : WWW = new WWW(url);    //  等待下载完成    yield www;    //  打印错误的控制台    if(www.error!=null) {    Debug.Log(www.error);    }    //赋值纹理    renderer.material.mainTexture = www.texture;    }  ◆  var isDone : bool    描述:  下载是否完成(只读)。    如果你试图访问任何 isDone 为 false 的数据,程序将被阻止知道下载完成。     var movie : MovieTexture  描述:  从下载的数据生成一个 MovieTexture(只读)。  数据必须为一个 Ogg Theora 格式视频。  即使视频完全没有下载完成,这个也立即返回,允许你开始播放已经下载完成的部分。    var url = “http://www.unity3d.com/webplayers/Movie/sample.ogg”;    function Start() {    //  开始下载     var www = WWW(url);    //  确保视频在开始播放前已经准备好     var movieTexture = www.movie;    while(!movieTexture.isReadyToPlay)    yield;    //初始化 GUI 纹理为 1:1 解析度并居中    guiTexture.texture = movieTexture;     transform.localScale = Vector3(0,0,0);    transform.position = Vector3(0.5, 0.5, 0);    guiTexture.pixelInset.xMin = ‐movieTexture.width/2;    guiTexture.pixelInset.xMax = movieTexture. width /2;     guiTexture.pixelInset.yMin = ‐movieTexture.height/2;    guiTexture.pixelInset.yMax = movieTexture. height /2 ;    //  赋值剪辑到音频源    //  与音频同步播放    audio.clip = movieTexture.audioClip;    //  播放视频和音频    movieTexture.Play();    audio.Play();    }    //  确保我们有 GUI 纹理和音频源    @script RequireComponent(GUITexture)    @script RequireComponent(AudioSource)  ◆  var oggVorbis : AudioClip        描述:  加载 Ogg Vorbis 文件到音频剪辑。    如果流没有被完全下载,将返回 null。使用 isDone 或者 yield 来查看数据是否可用。    参见: AudioClip, AudioSource    var path = “http://ua301106.us.archive.org/2/items/abird2005‐02‐10t02.ogg”;    function Start() {  var download = new WWW(path); //  开始下载  yield download; //  等待下载完成    var clip : AudioClip = download.oggVorbis; //  创建 ogg vorbis 文件    //  播放它    if(clip!=null) {     audio.clip = clip;     audio.Play();    //  处理错误  } else {    Debug.Log(“Ogg vorbis download failed(Incorrect link?)”);  }  }    @script RequireComponent(AudioSource)    //  一个通用的流式音乐播放器    //  成功地下载音乐,然后随机地播放它们    var  downloadPath  :  String[]  =  [“http:/ia301106.us.archive.org/2/items/abird2005‐02‐10t02.ogg”];    private var downloadedClips : AudioClip[];    private var playedSongs = new Array();    function Start () {    downloadedClips = new AudioClip(downloadPath.Length);    DownloadAll();    PlaySongs();    }    function DownloadAll() {    for(var i=0;i 0.5)  print(“braking slip!”);    }    }  ◆  var normal : Ve ctor3    描述:  接触点的法线。  ◆  var point : Vector3    描述:  轮胎和地面的接触点。  ◆  var sidewaysDir : Vector3    描述:  车轮的侧向。  ◆  var sidewaysSlip : float    描述:  在侧面方向上的滑动。  YieldInstruction    类    用于所有 yield 指令的基类。    参考 WaitForSeconds , WaitForFixedUpdate , Coroutine 和 MonoBehaviour.StartCoroutine 获取更多信息。  Coroutine    类,继承自 YieldInstruction    MonoBehaviour.StartCoroutine 返回一个 Coroutine。    一个 Coroutine 是一个函数,这个函数可以被暂停(yield)直到给定的 YieldInstruction 完成。    //  打印”Starting 0.0”    //  打印”WaitAndPrint 5.0”    //  打印”Done 5.0”    print(“Starting “ + Time.time);    // WaitAndPrint 作为一个 Coroutine 开始    yield WaitAndPrint();    print(“Done  ”  + Time.time);    function WaitAndPrint() {    //  暂停执行 5 秒    yield WaitForSeconds(5);    print(“WaitAndPrint  “  + Time.time);    }      WaitForEndOfFrame    类,继承自 YieldInstruction    等待直到所有的相机和 GUI 被渲染完成,并在该帧显示在屏幕上之前。    你可以用它来读取显示到纹理中,编码它为一个图片(参考 Texture2D.ReadPixels,  Texture2D.EncodeToPNG)并发送它。  yield new WaitForEndOfFrame();    //  存储截屏为 PNG 文件    import System.IO;    //  立即截屏    function Start() {    UploadPNG();    }    function UploadPNG() {     //  在渲染完成后读取屏幕缓存    yield WatiForEndOfFrame();    //  创建一个屏幕大小的纹理,RGB24 格式    var width = Screen.width;    var height = Screen.height;    var tex = new  Texture2D(width, height, TextureFormat.RGB24, false);    //  读取屏幕内容到纹理    tex.ReadPixels(Rect(0, 0, width, height), 0 ,0);    tex.Apply();    //  编码纹理为 PNG 文件    var bytes = tex.EncodeToPNG();    Destroy(tex);    //  出于测试目的,也在工程文件夹中写一个文件    // File.WriteAllBytes(Application.dataPath – “/…/SavedScreen.png”, bytes);    //  创建一个 Web 表单    var form = new WWWForm();    form.AddField(“frameCount”, Time.frameCount.ToString());     form.AddBinaryData(“fileUpload”, bytes);    //上传到一个 CGI 脚本    var w = WWW(“http://localhost/cgi‐bin/cnv.cgi?post”, form);    yield w;    if(w.error != null) {    print(w.error);    }    else {    print(Finished Uploading Screenshot”);    }    //  在游戏视图中显示 alpha 通道的内容,需要 UnityPro 因为这个脚本使用了 GI 类    private var mat : Material;    //  在该帧被完全渲染后,我们将绘制提取了 alpha 通道的一个全屏矩形        function Start ()    {  while(true) {    yield WaitForEndOfFrame();    if(!mat) {  mat = new Material(“Shader \” Hidden/Alpha “(“ + “SubShader { “ + “ Pass {“ + “ZTest  Always Call off ZWrite off” + “Blend DstAlpha Zero” + “Color(1,1,1,1)” + “}” + “}” + “}”);    }    GL.PushMatrix();    GL.LoadOrtho();    fo r(var i=0;iScripts”菜单。    使用这个更好的组织 Component 菜单,这种方法可以在添加脚本时改善工作流程。 重要提示:需要重启!    // JavaScript 的例子    @script    AddComponentMenu(“Transform/FollowTransform”)    class FollowTransform : MonoBehaviour {    }    // C#的例子    [AddComponentMenu(“Transform/FollowTransform”)]    class FollowTransform : MonoBehaviour {    }  构造函数  ◆  static function AddComponentMenu(menuName : st ring) : AddComponentMenu    描述:  这个脚本将根据 menuName 纺织在组件菜单中。menuName 是组件的路径” Rendering/DoSomething”。如果 menuName 为””组件将从菜单中隐藏。如果 menuName 为””组件将从菜单中隐藏。  ContextMenu      类,从 Attribute 继承    ContextMenu 属性允许你添加命令到上下文菜单。    在这个附加脚本的检视面板中。当用户选择这个上下文菜单,该函数将被执行。    这最适合用来从脚本中自动设置场景数据。这个函数必须是非静态的。    // JavaScript 的例子    @ContextMenu(“Do Something”)    function DoSomething() {    Debug.Log(“Perform operation”);    }    // C#的例子    class ContextTesting : MonoBehaviour {    //  在脚本的检视面板中添加名为”Do Something”的上下文菜单    [ContextMenu(“Do Something”)]    void DoSomething() {    Debug.Log(“Perform operation”);    }    }  构造函数      ◆  static function ContextMenu(name : string) : ContextMenu    描述:  添加这个函数到组件的上下文菜单中。    在这个附加脚本的检视面板中。当用户选择这个上下文菜单后,该函数将被执行。    这最适合用来从脚本中自动设置场景的数据。这个函数必须是非静态的。  // JavaScript 的例子    @ContextMenu(“Do Something”)    function DoSomething() {    Debug.Log(“Perform operation”);    }    // C#的例子    class ContextTesting : MonoBehaviour {    //  在脚本的检视面板中添加名为”Do Something”的上下文菜单    [ContextMenu(“Do Something”)]    void DoSomething() {    Debug.Log(“Perform operation”);    }    }  ExecuteInEditMode  类,从 Attribute 继承  让脚本在编辑模式执行。  默认的,脚本只在运行模式时执行。这可以让这个脚本在编辑模式时执行。    @script    ExecuteInEditMode();    //  只是一个简单的脚本来查找目标变换    var target : Transform;    function Update() {    if(target)     transform.LookAt(target);    }  HiddenInInspector  类,从 Attribute 继承    使一个变量不会出现在检视面板中但是能被序列化。    //  使 p 不显示在检视面板中,但是能被序列化    @HiddenInInspector    var p = 5;  NonSerialized  类,从 Attribute 继承    NonSerialized 属性标记一个变量没有被序列化。    用这种方法你能保持一个公开变量,并且 Unity 不会序列化它或在检视面板中显示 它。  // p 不会显示在检视面板中或被序列化    // JavaScript 的例子    @System.NonSerialized    var p = 5;        // C#的例子    class Test {    // p 不会显示在检视面板中或者被序列化    [System.NonSerialized]    public int p = 5;    }  RPC    类,从 Attribute 继承  RenderBeforeQueues    类,从 Attribute 继承    定义在哪个渲染队列中 OnRenderObject 将被调用的属性。    参见: Render.queues,MonoBehaviour.OnRenderObject    //  在渲染不透明和透明物体之前 OnRenderObject 被调用    @RenderBeforeQueues(1000, 2000)    function OnRenderObject(queue : int) {    //  做自定义的渲染    }  构造函数  ◆  static function R enderBeforeQueues(params args : int[]) : RenderBeforeQueues    描述:  定义在哪个渲染队列中 OnRenderObject 将被调用。    参见: Render.queues,MonoBehaviour.OnRenderObject  //  在渲染不透明和透明物体之前 OnRenderObject 被调用    @RenderBeforeQueues(1000, 2000)    function OnRenderObject(queue : int) {    //  做自定义的渲染    }  RequireComponent    类,从 Attribute 继承    这个 RequireComponent 属性自动添加所需组件作为一个依赖。    当使用 RequireComponent 添加一个脚本,这个需要的组件将自动被添加到游戏物 体上,这可以用来避免设置错误。例如,一个脚本也许需要一个刚体添加到同一个游戏物 体上。使用 RequireComponent 这个将被自动完成,因此不会出现设置错误。  // C#例子,标记 PlayerScript 需要一个刚体    [RequireComponent(typeof(Rigidbody))]    class PlayerScript : MonoBehaviour {    void F ixedUpdate() {    rigidbody.AddForce(Vector3.up);    }    }  构造函数  ◆  static function RequireComponent(requiredComponent : Type) : RequireComponent  描述:  请求添加一个组件。  ◆  static function RequireComponent(requiredComponent : Type, requiredComponent2 :  Type) : RequireComponent      描述:  请求添加两个组件。  ◆  static function RequireComponent(requiredComponent : Type, requiredComponent2 :  Type, requiredComponent3 : Type) : RequireComponent   描述:  请求添加三个组件。  Serializable    类,从 Attribute 继承    序列化属性允许你在检视面板中嵌入一个类的子属性。    你可以使用这个来在检视面板中显示一个变量,类似于 Vector3 显示在检视面板 中。名称和一个三角形可以展开它的属性。你需要从 System.Object 派生一个类,并给它 Serializable 属性。在 JavaScript 中 Serializable 属性是隐式的并不是必须的。    class Test extends System.Object {    var p = 5;    var c = Color.white;    }    var test = Test();    // C#的例子:     [System.Serializable]    class Test {    public int p = 5;    public Color c= Color.white;    }  枚举  AnimationBlendMode    枚举    由 Animation.Play 函数使用。  值  ◆  AnimationBlendMode.Additive  描述:  动画将被附加。  ◆  AnimationBlendMode.Blend    描述:  动画将被混合  AudioVelocityUpdateMode    枚举    描述:  一个 AudioSource 或 AudioListener 何时被更新。  值  ◆  AudioVelocityUpdateMode.Auto  描述:  如果源或侦听器附加在一个 Rigidbody 上就以固定更新循环更新它,否则使用动 态的。  ◆  AudioVelocityUpdateMode.Dynamic  描述:  以动态的更新循环更新源或者侦听器。  ◆  AudioVelocityUpdateMode.Fixed  描述:  以固定的更新循环更新源或者侦听器。  CameraClearFlags    枚举    Camera.clearFlags 值用来决定在渲染一个 Camera 时清除什么。        参见: camera 组件  值  ◆  CameraClearFlags.Depth  描述:  只清除深度缓存。    这将留下前一帧的颜色或者任何被显示的东西。    //  只清除深度缓存    camera.clearFlags = CameraClearFlags.Depth;    参见: Camera.clearFlags 属性,camera 组件  ◆  CameraClearFlags.Nothing  描述:  不清除任何东西。    这将留下前一帧的颜色的深度缓存或者任何被显示的东西。    //  不清除任何东西    camera.clearFlags = CameraClearFlags.Nothing;    参见: Camera.clearFlags 属性,camera 组件  ◆  CameraClearFlags.Skybox  描述:  用天空盒清除。    如果没有设置天空盒,相机将继续使用 backgroundColor 来清除。    //  用天空盒清除    camera.clearFlags = CameraClearFlags.Skybox;    参见: Camera.clearFlags 属性,camera 组件,Render 设置  ◆  CameraClearFlags.SolidColor  描述:  用背景颜色清除    camera.clearFlags = CameraClearFlags.SolidColor;    参见: Camera.clearFlags 属性,camera 组件,Camera.backgroundColor 属性  CollisionFlags    枚举    CollisionFlags 是由 CharacterController.Move 返回的一个 bitmask。    它给你一个角色和其他任何物体碰撞的大概位置。  值  ◆  CollisionFlags.Above  描述:  CollisionFlags 是由 CharacterController.Move 返回的一个 bitmask。它给你一个角 色和其他任何物体碰撞的大概位置。    function Update() {    var controller : CharacterController = GetComponent(CharacterController);    if(controller.collisionFlags == CollisionFlags.None)    print(“Free floating!”);    if(controller.collisionFlags & CollisionFlags.Sides)    print(“Touching sides!”);    if(controller.collisionFlags == CollisionFlags.Sides)    print(“Only touching sides, nothing else!”);    if(controller.collisionFlags & CollisionFlags.Above)    print(“Touching ceiling!”);    if(controller.collisionFlags == CollisionFlags.Above)    print(“Only touching ceiling, nothing else!”);        if(controller.collisionFlags & CollisionFlags.Below)    print(“Touching ground!”);    if(controller.collisionFlags == CollisionFlags.Below)    print(“Only touching ground, nothing else!”);    }  ◆  CollisionFlags.Below  描述:  CollisionFlags 是由 CharacterController.Move 返回的一个 bitmask。它给你一个角 色和其他任何物体碰撞的大概位置。    function Update() {  var controller : CharacterController = GetComponent(CharacterController);    if(controller.collisionFlags == CollisionFlags.None)    print(“Free floating!”);    if(controller.collisionFlags & CollisionFlags.Sides)    print(“Touching sides!”);    if(controller.collisionFlags == CollisionFlags.Sides)    print(“Only touching sides, nothing else!”);    if(controller.collisionFlags & CollisionFlags.Above)    print(“Touching ceiling!”);    if(controller.collisionFlags == CollisionFlags.Above)    print(“Only touching ceiling, nothing else!”);    if(controller.collisionFlags & CollisionFlags.Below)    print(“Touching ground!”);    if(controller.collisionFlags == CollisionFlags.Below)    print(“Only touching ground, nothing else!”);    }  ◆  CollisionFlags.None  描述:  CollisionFlags 是由 CharacterController.Move 返回的一个 bitmask。它给你一个角 色和其他任何物体碰撞的大概位置。    function Update() {    var controller : CharacterController = Ge tComponent(CharacterController);    if(controller.collisionFlags == CollisionFlags.None)    print(“Free floating!”);    if(controller.collisionFlags & CollisionFlags.Sides)    print(“Touching sides!”);    if(controller.collisionFlags == CollisionFlags.Sides)    print(“Only touching sides, nothing else!”);    if(controller.collisionFlags & CollisionFlags.Above)    print(“Touching ceiling!”);    if(controller.collisionFlags == CollisionFlags.Above)    print(“Only touching ceiling, nothing else!”);    if(controller.collisionFlags & CollisionFlags.Below)    print(“Touching ground!”);    if(controller.collisionFlags == CollisionFlags.Below)    print(“Only touching ground, no thing else!”);        }  ◆  CollisionFlags.Sides  描述:  CollisionFlags 是由 CharacterController.Move 返回的一个 bitmask。它给你一个角 色和其他任何物体碰撞的大概位置。    function Update() {    var controller : CharacterController = GetComponent(CharacterController);    if(controller.collisionFlags == CollisionFlags.None)    print(“Free floating!”);    if(controller.collisionFlags & CollisionFlags.Sides)    print(“Touching sides!”);  if(controller.collisionFlags == CollisionFlags.Sides)    print(“Only touching sides, nothing else!”);    if(controller.collisionFlags & CollisionFlags.Above)    print(“Touching ceiling!”);    if(controller.collisionFlags == CollisionFlags.Above)    print(“Only touching ceiling, nothing else!”);    if(controller.collisionFlags & CollisionFlags.Below)    print(“Touching ground!”);    if(controller.collisionFlags == CollisionFlags.Below)    print(“Only touching ground, nothing else!”);    }  ConfigurableJointMotion    枚举    沿着 6 个轴限制 ConfigurableJoint 的移动。  值  ◆  ConfigurableJointMotion.Free  描述:  沿着这个轴的运动将是完全自由和完全无约束的。  ◆  ConfigurableJointMotion.Limited  描述:  沿着这个轴的运动将被分别限制。  ◆  ConfigurableJointMotion.Locked   描述:  沿着这个轴的运动将被锁定。  ConnectionTesterStatus    枚举  值  ◆  ConnectionTesterStatus.Error   描述:  ◆  ConnectionTesterStatus.PrivateIPHasNATPunchThrough   描述:  私有 地址被检测到并且能做 NAT 穿透。  ◆  ConnectionTesterStatus. PrivateIPNoNATPunchThrough   描述:  私有地址被检测到并且不能做 NAT 穿透。  ◆  ConnectionTesterStatus.PublicIPIsConnectable  描述:  公有的 IP 地址被检测到并且游戏的侦听端口可以通过互联网访问。  ◆  ConnectionTesterStatus.PublicIPNoServerStarted   描述:  公有的 IP 地址被检测到但是服务器没有被初始化并且没有侦听端口。      ◆  ConnectionTesterStatus.PublicIPPortBlocked  描述:  公有的 IP 地址被检测到但是它的端口不能通过互联网连接。  ◆  ConnectionTesterStatus.Undetermined  描述:  测试结果未知,还在进行中。  CubemapFace    枚举    Cubemap 面。    被 Cubemap.GetPixel 和 Cubemap.SetPixel。  值    PositiveX   右面(+x)    NegativeX  左面(‐x)    PostiveY   上面(+y)    NegativeY  下面(‐y)    PostiveZ   前面(+z)    NegativeZ  后面(‐z)  EventType    枚举    UnityGUI 输入和处理事件的类型。    参见: Event.type,  Event,GUI 脚本 手册。  值  ◆  EventType.ContexClick  描述:  用户使用右键单机(或者在 mac 上的 Control+单机)。    如果是窗口的应用,应该显示一个上下文菜单。在编辑器中只发送。  ◆  EventType.DragExited  描述:  只限于编辑器,存在的拖放操作。    参见: DragAndDrop 类  ◆  EventType.DragPerform  描述:  只限于编辑器,拖放操作执行。    参见: DragAndDrop 类  ◆  EventType.DragUpdated  描述:  只限于编辑器,拖放操作更新。    参见: DragAndDrop 类  ◆  EventType.ExecuteCommand    描述:  执行特殊的命令(例如,拷贝和粘贴)。    “Copy”,”Cut”,”Paste”,”Delete”,”FrameSelected”,”Duplicate”,”SelectAll”  ◆  EventType.Ignore    描述: Event 应该被忽略。    这个事件被临时禁用并应该被忽略。  ◆  EventType.KeyDown    描述:  一个键盘按键被按下。    使用 Event.character 查看什么被键入。使用 Event.keyCode 处理箭头,home/end 或其他任何功能键,或者找到哪个物理键被按下。这个事件根据端用户键盘的重复设置来 重复发送。    注意按键可以来自不同的事件,一个是 Event.keyCode,另一个是 Event.chatacter,     根据键盘布局,多个 Event.keyCode 可以产生一个 Event.character 事件。  ◆  EventType.KeyUp    描述:  一个键盘按键被释放。    使用 Event.keyCode 查看哪个物理按键被释放。注意根据系统和键盘布局的不同, Event.character 也许不包含任何字符。  ◆  EventType.Layout    描述:  一个布局事件。    这个事件先于其他任何事件被发送。这是一个几回来执行任何初始化,它被用于 自动布局系统。  ◆  EventType.MouseDown  描述:  鼠标按键被按下。    当任何鼠标按键被按下的时候发送该事件 ‐ 使用 Event.button 决定哪个按键被按 下。  ◆  EventType.MouseDrag  描述:  鼠标被拖动。    鼠标移动并且按键被按下  –  拖动鼠标。使用 Event.mousePosition 和 Event.delta 来决定鼠标移动。  ◆  EventType.MouseMove  描述:  鼠标被移动。  鼠标移动,没有任何按键被按下。使用 Event.mousePosition 和 Event.delta 来确定鼠标 移动。  ◆  EventType.MouseUp    描述:  鼠标按键被释放。    当任何鼠标按键被释放时发送该事件。使用 Event.button 决定哪个按键被释放。  ◆  EventType.Repaint    描述:  一个重绘事件。每帧发送一个。    首先处理所有的其他事件,然后这个重绘事件被发送。  ◆  EventType.ScrollWheel    描述:  滚轮被滚动。    使用 Event.delta 决定 X 和 Y 的滚动量。  ◆  EventType.Used    描述:  已处理的事件。    这个事件已经被其他的一些控件使用并应该被忽略。  ◆  EventType.ValidateCommand    描述:  验证特殊的命令(例如,拷贝和粘贴)。    “Copy”,”Cut”,”Paste”,”Delete”,”FrameSelected”,”Duplicate”,”SelectAll” 等等,只在编辑器中发送。  FilterMode    纹理的过滤模式。对应于 texture.inspector 中的设置。    参见: Texture.filterMode,texture.assets  值  ◆  FilterMode.Bilinear    描述:  双线性过滤  –  纹理被平均采样。    renderer.material.mainTexture.filterMode = FilterMode.Bilinear;        参见: Texture.filterMode,texture assets  ◆  FilterMode.Point    描述:  点过滤  –  纹理像素变得近乎斑驳。    renderer.material.mainTexture.filterMode = FilterMode.Point;    参见: Texture.filterMode,texture assets  ◆  FilterMode.Trilinear    描述:  三线性过滤  –  纹理被平均采样并在 mipmap 等级之间混合。    renderer.material.mainTexture.filterMode = FilterMode.Trilinear;    参见: Texture.filterMode,texture assets  FocusType    被 GUIUtility.GetControlID 使用来通知 UnityGUI 系统给定的空间能否获取键盘焦 点。    值  ◆  FocusType.Keyborad  描述:  这是一个何时的键盘控制。在所有平台上它都能有输入焦点。用于 TextField 和 TextArea 控件。  ◆  Fo cusType.Native  描述:  这个空间可以在 Windows 下获取焦点,但是在 Mac 下不能。用于按钮,复选框 和其他的“可按下”物体。  ◆  FocusType.Passive  描述:  这个控件永远不能接收键盘焦点。  ForceMode    Rigidbody.AddForce 如何使用力的选项。  值  ◆  ForceMode.Acceleration    描述:  添加一个牛顿力到这个刚体,忽略它的质量。    这个模式不依赖于刚体的质量。因此推和旋转的应用将不会受到刚体质量的影响, 相对于 ForceMode.Force 这将以相同的设置移动每个刚体而忽略它们的质量差别。这个模式 更像一个加速度而不是速度。在这个模式线,应用到物体的力参数的单位是距离/时间^2。  ◆  ForceMode.Force    描述:  添加一个牛顿力到这个刚体,使用它的质量。    这个模式依赖于刚体的质量。因此,必须对较大的质量的物体应用更多的力来推 动或旋转它。这模式更像一个加速度而不是速度。在这个模式线,应用到物体的力的参数 的单位是质量*距离/时间^2。  ◆  ForceMode.Impulse    描述:  用刚体的质量改变它的速度。    这个模式依赖于刚体的质量。因此,必须对较大质量的物体应用更多的力来推动 或旋转  它。这模式更像一个速度而不是加速度。在这个模式线,应用到物体的力的参数是质 量*距离/时间。  ◆  ForceMode.VelocityChange    描述:  改变刚体的速度。忽略它的质量。    这个模式不依赖于刚体的质量。因此推和旋转的应用将不会受到刚体质量的影响。     这可用于控制不同尺寸的飞船而不考虑质量差别。在这个模式,应用到物体的力的参数的 单位是距离/时间。  HideFlags  Bit 蒙板,可以控制对象销毁和在检视面板中的可视性。  值  ◆  HideFlag.DontSave  描述:  这个物体将不会被保存到场景。当一个新的场景被加载时它将不会被销毁。    使用 DestroyImmediate 手工清理这个物体是你的责任,否则它将泄漏。  ◆  HideFlags.HideAndDontSave  描述:  不显示在层次视图中并且不保存到场景的组合。    这个最常用于那些由脚本创建并纯粹在它控制之下的物体。  ◆  HideFlags.HideInHierarchy  描述:  如果这个对象是储存在一个资源中,这个对象将不会显示在层次视图中并且不会 显示在工程视图中。  ◆  HideFlags.HideInInspector  描述:  不能在检视面板中查看。  ◆  HideFlags.NotEditable  描述:  这个物体在检视面板中不可编辑。  ImagePosition    在 GUIStyle 中图片和文本如何被放置。  值   ◆  ImagePosition.ImageAbove  描述:  图片在文本上面。  ◆  ImagePosition.ImageLeft    描述:  图片在文本左侧。  ◆  ImagePosition.ImageOnly    描述:  只 有这个图片被显示。  ◆  ImagePosition.TextOnly    描述:  只有这个文本被显示。  JointDriveMode    ConfigurableJoint 试图基于这个表示来达到这个位置/速度的目的。  值  ◆  JointDriveMode.None  描述:  不用任何力来达到目标。  ◆  JointDriveMode.Position  描述:  尽量达到特定的位置。  ◆  JointDriveMode.PositionAndVelocity  描述:  尽量达到特定的位置和速度。  ◆  JointDriveMode.Velocity  描述:  尽量达到特定的速度。  JointProjectionMode    该属性用来决定在物体偏离太多的时候如果它吸附到约束位置。    参见: ConfigurableJoint  值      ◆  JointProjectionMode.None  描述:  不吸附。  ◆  JointProjectionMode.PositionAndRotation  描述:  吸附到位置和旋转。  ◆  JointProjectionMode.PositionOnly  描述:  只吸附到位置。  KeyCode    KeyCode 是由 Event.keyCode 返回的。这些直接映射到键盘上的物理键。  值    Backspace  退格键    Delete   Delete 键    TabTab 键    Clear  Clear 键    Return   回车键    Pause   暂停键    Escape   ESC 键    Space   空格键    Keypad0   小键盘 0          Keypad1   小键盘 1    Keypad2   小键盘 2    Keypad3   小键盘 3    Keypad4   小键盘 4    Keypad5   小键盘 5    Keypad6   小键盘 6    Keypad7   小键盘 7    Keypad8   小键盘 8    Keypad9   小键盘 9    KeypadPeriod 小键盘“.”    KeypadDivide 小键盘“/”    KeypadMultiply 小键盘“*”    KeypadMinus 小键盘“‐”    KeypadPlus  小键盘“+”    KeypadEnter  小键盘“Enter”    KeypadEquals 小键盘“=”    UpArrow   方向键上    DownArrow  方向键下    RightArrow  方向键右    Le ftArrow  方向键左    Insert   Insert 键    Home   Home 键    EndEnd 键    PageUp   PageUp 键    PageDown  PageDown 键    F1 功能键 F1              F2 功能键 F2          F3 功能键 F3          F4 功能键 F4          F5 功能键 F5          F6 功能键 F6          F7 功能键 F7    F8   功能键 F8    F9   功能键 F9    F10   功能键 F10    F11   功能键 F11    F12   功能键 F12    F13   功能键 F13    F14   功能键 F14    F15   功能键 F15    Alpha0  按键 0    Alpha1  按键 1    Alpha2  按键 2    Alpha3  按键 3    Alpha4  按键 4    Alpha5  按键 5    Alpha6  按键 6    Alpha7  按键 7    Alpha8  按键 7    Alpha9  按键 9    Exclaim  ‘!’键    DoubleQuote 双引号键    Hash  Hash 键    Dollar  ‘$’键    AmpersandAmpersand 键    Quote  单引号键    LeftParen 左括号键    RightParen 右括号键    Asterisk  ‘  *  ’键    Plus   ‘  +  ’键    Comma  ‘  ,  ’键    Minus  ‘ ‐ ’键    Period  ‘  .  ’键    Slash  ‘  /  ’键    Colon  ‘  :  ’键    Semicolon‘  ;  ’键    Less   ‘  <  ‘键    Equals  ‘  =  ‘键    Greater  ‘  >  ‘键    Question ‘  ?  ’键              At   ‘@’键    LeftBracket‘  [  ‘键    Backslash  ‘  \  ’键    RightBracket‘  ]  ’键    Caret  ‘  ^  ’键    Underscore‘  _  ’键    BackQuote‘  `  ’键    A   ‘a’键    B   ‘b’键    C   ‘c’键    D   ‘d’键    E   ‘e’键    F   ‘f’键    G   ‘g’键    H   ‘h’键    I   ‘i’键    J   ‘j’键    K   ‘k’键    L   ‘l’键    M   ‘m’键    N   ‘n’键    O   ‘o’键    P   ‘p’键    Q   ‘q’键    R   ‘r’键    S   ‘s’键    T   ‘t’键    U   ‘u’键    V   ‘v’键    W   ‘w’键    X   ‘x’键    Y   ‘y’键    Z   ‘z’键    Numlock Numlock 键    Capslock 大小写锁定键    ScrollLockScroll Lock 键    RightShift  右上档键    LeftShift  左上档键    RightControl 右 Ctrl 键    LeftControl 左 Ctrl 键    RightAlt  右 Alt 键    LeftAlt  左 Alt 键    LeftApple  左 Apple 键    LeftWindows 左 Windows 键              RightApple 右 Apple 键    RightWindows 右 Windows 键    AltGr  Alt Gr 键    Help   Help 键    Print  Print 键    SysReq  Sys Req 键    Break  Break 键    Mouse0  鼠标左键    Mouse1  鼠标右键    Mouse2  鼠标中键    Mouse3  鼠标第 3 个按键    Mouse4  鼠标第 4 个按键    Mouse5   鼠标第 5 个按键    Mouse6   鼠标第 6 个按键    JoystickButton0 手柄按键 0    JoystickButton1 手柄按键 1    JoystickButton2 手柄按键 2    JoystickButton3 手柄按键 3    JoystickButton4 手柄按键 4    JoystickButton5 手柄按键 5    JoystickButton6 手柄按键 6    JoystickButton7 手柄按键 7    JoystickButton8 手柄按键 8    JoystickButton9 手柄按键 9    JoystickButton10 手柄按键 10    JoystickButton11 手柄按键 11    JoystickButton12 手柄按键 12    JoystickButton13 手柄按键 13    JoystickButton14 手柄按键 14    JoystickButton15 手柄按键 15    JoystickButton16 手柄按键 16    JoystickButton17 手柄按键 17    JoystickButton18 手柄按键 18    JoystickButton19 手柄按键 19    Joystick1Button0 第一个手柄按键 0    Joystick1Button1 第一个手柄按键 1    Joystick1Button2 第一个手柄按键 2    Joystick1Button3 第一个手柄按键 3    Joystick1Button4 第一个手柄按键 4    Joystick1Button5 第一个手柄按键 5    Joystick1Button6 第一个手柄按键 6    Joystick1Button7 第一个手柄按键 7    Joystick1Button8 第一个手柄按键 8    Joystick1Button9 第一个手柄按键 9                 Joystick1Button10 第一个手柄按键 10    Joystick1Button11 第一个手柄按键 11    Joystick1Button12 第一个手柄按键 12    Joystick1Button13 第一个手柄按键 13    Joystick1Button14 第一个手柄按键 14    Joystick1Button15 第一个手柄按键 15    Joystick1Button16 第一个手柄按键 16    Joystick1Button17 第一个手柄按键 17    Joystick1Button18 第一个手柄按键 18    Joystick1Button19 第一个手柄按键 19    Joystick2Button0 第二个手柄按键 0    Joystick2Button1 第二个手柄按键 1    Joystick2Button2 第二个手柄按键 2    Joystick2Button3 第二个手柄按键 3    Joystick2Button4 第二个手柄按键 4    Joystick2Button5 第二个手柄按键 5    Joystick2Button6 第二个手柄按键 6    Joystick2Button7 第二个手柄按键 7    Joystick2Button8 第二个手柄按键 8    Joystick2Button9 第二个手柄按键 9    Joystick2Button10 第二个手柄按键 10    Joystick2Button11 第二个手柄按键 11    Joystick2Button12 第二个手柄按键 12    Joystick2Button13 第二个手柄按键 13    Joystick2Button14 第二个手柄按键 14    Joystick2Button15 第二个手柄按键 15    Joystick2Button16 第二个手柄按键 16    Joystick2Button17 第二个手柄按键 17    Joystick2Button18 第二个手柄按键 18    Joystick2Button19 第二个手柄按键 19    Joystick3Button0 第三个手柄按键 0    Joystick3Button1 第三个手柄按键 1    Joystick3Button2 第三个手柄按键 2    Joystick3Button3 第三个手柄按键 3    Joystick3Button4 第三个手柄按键 4    Joystick3Button5 第三个手柄按键 5    Joystick3Button6 第三个手柄按键 6    Joystick3Button7 第三个手柄按键 7    Joystick3Button8 第三个手柄按键 8    Joystick3Button9 第三个手柄按键 9    Joystick3Button10 第三个手柄按键 10    Joystick3Button11 第三个手柄按键 11    Joystick3Button12 第三个手柄按键 12    Joystick3Button13 第三个手柄按键 13              Joystick3Button14 第三个手柄按键 14    Joystick3Button15 第三个手柄按键 15    Joystick3Button16 第三个手柄按键 16    Joystick3Button17 第三个手柄按键 17    Joystick3Button18 第三个手柄按键 18    Joystick3Button19 第三个手柄按键 19  LightRenderMode    Light 如何被渲染。    参见: light 组件  值  ◆  LightRenderMode.Auto    描述:  自动选择渲染模式。    选择是否渲染这个 Light 为像素光或者顶点光源(建议缺省)。    //  设置光源的渲染模式为自动    light.renderMode = LightRenderMode.Auto;    参见: light 组件  ◆  LightRenderMode.ForcePixel    描述:  强制 Light 为像素光源。    只将这个用于真正重要的光源,例如一个玩家的手电筒。    //  强制光源为像素光源    light.renderMode = LightRenderMode.ForcePixel;    参见: light 组件  ◆  LightRenderMode.ForceVertex    描述:  强制 Light 为顶点光源。    这个选项对于背景光或远处的光照是非常好的。  //  强制光源为顶点光源    light.renderMode = LightRenderMode.ForceVertex;    参见: light 组件  LightShadows    Light 的阴影投射选项。    参见: light 组件  值  ◆  LightShadows.Hand  描述:投射“hard”阴影(没有阴影过滤)  //设置光源为投射硬阴影  Light.shadows=LightShadows.Hard;  参见:light component  ◆LightShadows.None  描述:不投射阴影(默认)  //设置光源为不投射阴影  Light.shadows=lightshadows.None;  参见:light component    ◆LightShadows.Soft  描述:投射 Soft 阴影(带有 4 倍 PCF 过滤)      //设置光源为投射 4 倍过滤的软阴影阴影  Light.shadows=lightshadows. Soft;  参见:light component             LightType  Light 的类型。  参见:Light.typelight component  值  ◆LightType.Directional  描述:这个光源是一个直射光源。  参见:Light.type,  light component  //制作一个直射光源  Light.type=LightType.Directional;  ◆LightType.Point  描述:这个光源是一个点光源。  参见:Light.type,light component  //制作一个直射光源  Light.type=LightType.Point;  ◆LightType.Spot  描述:这个光源是一个透射光源。  参见:Light.type,  light component  //制作一个透射光源  Light.type=LightType.Spot;                       MasterServerEvent  值     RegistrationFailedGameName   注册失败,因为给出的游戏名称为空。     RegistrationFailedGameType    注册失败,因为给出的游戏类型为空。     RegistrationFailedNoServer     注册失败,因为没有服务器在运行。     RegistrationSueceeded         注册到主服务器成功,接受到确认。     HostListReceived             从主服务器接受到一个主机列表   NetworkConnectionError  值    NoError     RSAPublicKeyMismatch           我们提供的 RSA 公匙与我们所连接系统的不匹 配。     InvalidPassword                  服务器需要密码并且拒绝我们的链接,因为我 们没有设置正确的密码     ConnecttionFailed                 连接失败,可能因为内部连接性问题。     TooManyConnectedPlayers          服务器到达最大限度,不能连接     ConnectionBanned                 我们被试图连接到的系统禁止了(可能是临时 的)     AlreadyConnectedToAnotherServer   不能同时链接到两个服务器,在再次连接之前 关闭这个连接     CreateSocketOrThreadFailure        试图初始化网络接口时出现内部错误,套接字 可能已经被使用了         IncorrectParameters                Connect 函数具有不正确的参数     EmptyConnectTarget               没有给出链接目标     InternalDirectConnectFailed         客户端不能内部链接到位于相同网络中的启 用了 NAT 的服务     NATTargetNotConnected           我们试图连接到的 NAT 目标没有连接到辅助服 务器     NATTargetConnectionLost          当试图链接到 NAT 目标时,连接丢失  值  ◆  ParticleRenderMode.Billboard  描述:作为面向玩家的公告板渲染例子(默认)  ◆  ParticleRenderMode.HorizentalBillboard  描述:作为公告板渲染粒子,总是沿着 Y 轴  ◆  ParticleRenderMode.SortedBillboard  描述:从后向前排序并作为公告板渲染。  这个使用混合例子着色器看起来更好,但是因为排序边得较慢  ◆  ParticleRenderMode.Streteh  描述:在运动方向拉伸粒子  ◆  ParticleRenderMode.VerticalBillboard  描述:作为公告板渲染粒子,总是面向玩家,但是不沿着 X 轴旋转  PhysicMaterialCombine     描述:碰撞物体的物理材质如何被组合  参见:PhysicMaterial.InctionCombine,PhysicMaterial.boticeCombine  值  Average        平均两个碰撞材质的摩擦/弹力  Multiply        两个碰撞材质的摩擦/弹力相乘  Minimum       使用两个碰撞材质的摩擦/弹力中较小的一个  Maximum       使用两个碰撞材质的摩擦/弹力中较大的一个  PlayMode     由 Animation.Play 函数使用  值  StopSameLayer    将停止在同一层上开始的所有动画。当播放动画的时候这个是默认 值     StopAll           停止所有由这个组件开始的动画  PrimitiveType     各种变量可以通过使用 GameObject.CreatePrimitive 函数创建     参见 GameObject.CreatePrimitive  值  ◆PrimitiveType Capsule  描述:胶囊几何体  参见:GameObject.CreatePrimitive  //创建一个胶囊几何体  functionsStart()}  var capsule=  GameObject.CreatePrimitive(PrimitiveType.Capsule);      }  ◆PrimitiveType Cube  描述:立方体  参见:GameObject.CreatePrimitive  //创建一个立方体  functionsStart()}  var cube=  GameObject.CreatePrimitive(PrimitiveType.Cube);  }  ◆PrimitiveType Cyhnder  描述:圆柱体  参见:GameObject.CreatePrimitive  //创建一个圆柱体  functionsStart()}  var cyhnder=  GameObject.CreatePrimitive(PrimitiveType.Cylinder);  }  ◆PrimitiveType Plane  描述:平面几何体  参见:GameObject.CreatePrimitive  //创建一个平面几何体  functionsStart()}  var plane=  GameObject.CreatePrimitive(PrimitiveType.Plane);  }  ◆PrimitiveType Sphere  描述:球形  参见:GameObject.CreatePrimitive  //创建一个球形  functionsStart()}  var sphere=  GameObject.CreatePrimitive(PrimitiveType.Sphere);  }  QualityLeve     图像质量等级  有六个质量等级可以这样,每个等级的细节都在工程的 Quality Sertings 中设置  质量等级可以在脚本中使用 QualitySertings 类来切换  参见:QualitySertings  currentlevel   QualityLeveSertings  值  ◆QualityLeve.Beautiful  描述:“beautiful”质量等级  参见:QualitySertings  currentlevel   QualityLeveSertings  ◆QualityLeve.Fantastic  描述:“fantastic”质量等级      参见:QualitySertings  currentlevel   QualityLeveSertings  ◆QualityLeve.Fast  描述:“fast”质量等级  参见:QualitySertings  currentlevel   QualityLeveSertings  ◆QualityLeve.Fastest  描述:“fastest”质量等级  参见:QualitySertings  currentlevel   QualityLeveSertings  ◆QualityLeve.Good  描述:“good”质量等级  参见:QualitySertings  currentlevel   QualityLeveSertings  ◆QualityLeve.Simple  描述:“simple”质量等级  参见:QualitySertings  currentlevel   QualityLeveSertings  QueueMode     由 Animation.Play 函数使用  值  CompleteOmers    所有其他动画通知播放后开始播放     PlayNow         立刻开始播放,如果你只是想开苏创建一个复制动画可以使用这 个  RPCmode     用来选择谁将接收这个 RPC  值  Server            只发送到服务器     Others            发送给所有人除了服务器        OthersBuffered     发送给每一个,除了服务器,并添加到缓存     All               发送到每个人     AllButFered        发送到每个人并添加到缓存  RenderTextureFormat     RenderTexture 的格式     参见:RenderTexture.fonmat,RenderTexture 类  值  ◆RenderTextureFormat ARGB32  描述:一个 32 位颜色的渲染纹理格式     参见:RenderTexture,RenderTexture 类     ◆RenderTextureFormat.Depth     描述:渲染纹理格式的深度     深度格式用来渲染高精度“深度”值到一个渲染纹理,实际使用哪个格式依赖于平 台,在 OpenGL 中,它是原始“深度组件”格式(通常是 24 或 16 位),在 Direct3D9 中它 是 32 位浮点(R32F)格式,在编写使用或渲染到深度纹理的 shader 时,必须确保它们能够 工作在 OpenGL 和 Direct3D 中,参考 depth textures documentation     注意不是所有的显卡支持深度纹理。使用 SystemInfo  supportsDepthRenderTextures 来检查是否支持     参见:RenderTexture  format , RenderTexture 类, SystemInfo.supportsDepthRenderTextures         RigidbodyInterpolation     Rigidbody 插值模式     对于那些被相机跟随的主角色或交通工具,建议使用插值。对于任何其他刚体建议 不使用插值     参见:RigidbodyInterpolation 变量  值  ◆RigidbodyInterpolation.Extrapolate  描述:外插值将基于当前速度预测刚体的位置  如果你有一个快速移动的物体,这个能够导致刚体在一帧中穿过碰撞器然后弹回  Rigidbody.interpolation=RigidbodyInterpolation.Extrapolate;     参见:RigidbodyInterpolation 变量  ◆RigidbodyInterpolation.Interpolate  描述:插值总是有些之后但是比外插值更光滑  Rigidbody.interpolation=RigidbodyInterpolation. Interpolate;     参见:RigidbodyInterpolation 变量  ◆RigidbodyInterpolation.None  描述:不插值  Rigidbody.interpolation=RigidbodyInterpolation.None;     参见:RigidbodyInterpolation 变量  RotationDriveMode     用它自己的 XYZ 后者 SlerpDrive 控制 ConfigurableJoint 的旋转  值  XYAndZ          使用 XY&Z 驱动  Slerp             使用 Slerp 驱动  RuntimePlatform     应用程序运行的平台。由 Application platform 返回  值  OSXEditor           OSX 下 Unity 编 辑器模式   OSXPlayer            OSX 上的播放器  WindowsPlayer        Windows 上的播放器  OSXWebPlayer        OSX 下的 web 播放器  OSXDashboard        OSX 下 Dashborard 窗口  WindowsWebOlayer    Windows 上的 web 播放器  WindowsEditor         Windows 下 Unity 编辑器模式  ScaleMode     绘制纹理的缩放模式    值  StretchToFill       缩放纹理以便完全填充传入 GUI.DrawTexture 的矩形  SealeAndCrop     缩放纹理,维持长宽比,这样它完全覆盖传递到 GUIDrawTexture 的 position 矩形,如果纹理被描绘到具有不同长宽比的矩形上时,图像被裁剪  ScaleToFit        缩放纹理,维持长宽比,这样它完全与传递到 GUIDrawTexture 的 position 矩形相匹配      SendMessageOptions     如何发送一个消息的选项     这个用在 GameObject 和 Component 的 SendMessage 和 BroadcastMessage 上  值  ◆SendMessageOptions.DontRequireReceiver  描述:SendMessage 不需要一个接收者  ◆SendMessageOptions.RequireReceiver  描述:SendMessage 需要一个接收者   如果没有找到接收者,将在控制台上打印以错误(默认)  SkinQuality     影响单个顶点的最大骨骼数量     参见:SkinnedMeshRenderer.quality  值  Auto       从当前 QualitySetings(默认)数中选择骨骼数量  Bone1      仅使用 1 骨骼变形一个顶点,(最重要的骨骼被使用)  Bone2      仅使用 2 骨骼变形一个顶点,(最重要的骨骼被使用)  Bone4      仅使用 4 骨骼变形一个顶点  Space     在那个坐标空间中操作     参见:Transform  值  World       相对于世界坐标系统应用一个变换  Self         相对于局部坐标系统应用一个变换  TerrainLighting     Terrain 光照模式     参见:Treeainlighting,TerrainLightings,T errainSettings  值  ◆TerrainLighting Lightmap  描述:使用光照图渲染地形  该地形只使用广州图,并且不会受到游戏中光源的影响  参见:TerrainLighting,TerrainLightmaps,TerrainLightmapsSettings  ◆TerrainLighting Pixel  描述:近处使用光源渲染地形,远处使用高度图  在游戏中靠近观察者的地形用光照,远处使用高度图混合,光源是顶点光照或像素光 照模式,并能够有阴影  光照距离是(Terrain.treeBillboardDistance , QualitySettings.shadowDistance , Terrain.basemapDistance)的最小值  参见:TerrainLighting,TerrainLightmaps,TerrainLightmapsSettings  ◆TerrainLighting Vertex  描述:使用顶点光照渲染地形  地形将以顶点光照模式被照亮,不使用光照贴图,投射光源就像顶点光  参见:TerrainLighting,TerrainLightmaps,TerrainLightmapsSettings  TextAlignment     多行文本应该如何被对齐         这个是被 GUIText.alignment 属性使用     参见:GUI Text component  值  Left          文本行左对齐  Center        文本行居中对齐  Right         文本行右对齐  TextAnchor     文本的锚点被放置在什么位置     这个是被 GUIText.anchor 属性使用     参见:GUI Text component  值  UpperLeft          文本被锚点在左上角  UpperCenter        文本被锚点在上边,垂直居中  UpperRight         文本被锚点在右上角  MiddleLeft         文本被锚点在左边,垂直居中  MiddleCenter       文本在水平和垂直方向上居中  MiddleRight        文本被锚点在右边,垂直居中  LowerLeft          文本被锚点在左下角  LowerCenter        文本被锚点在下边,垂直居中  LowerRight         文本被锚点在右上角  TextClipping     GUI 系统处理过大文本的以适合所分配矩形的方式  值  OverDow           文本随意浮动在该元素之外  Clip               文本被裁剪以便放置在该元素之内     TextureFormat     Texture 的格式,从脚本创建纹理时使用这个。     参见:Texture2D Texture2D,textureFormat  值  ◆TextureFormat Alpha8  描述:只有 alpha  的纹理格式  function Start(){  //创建一个新的只有 alpha 的纹理并将它赋予  //该渲染器材质  var texture=new Texture2D(128,128,TextureFormat,Alpht8,false),  rederer.material.mainTexture=texture;  }  参见:Texture2D Texture2D,textureFormat  ◆TextureFormat ARGB32  描述:只有 alpha  的彩色纹理格式  function Start(){  //创建一个新的纹理并将它赋予给渲染器材质  var texture=new Texture2D(128,128,TextureFormat,ARGB32,false),      rederer.material.mainTexture=texture;  }  参见:Texture2D Texture2D,textureFormat  ◆TextureFormat DXT1  描述:一个压缩的彩色纹理格式  参见:Texture2D Texture2D,textureFormat  ◆TextureFormat DXT5  描述:带有 alpha 通道的彩色压缩纹理格式  参见:Texture2D Texture2D,textureFormat  ◆TextureFormat RGB24  描述:一个彩色纹理格式  function Start(){  //创建一个新的纹理并将它赋予给渲染器材质  var texture=new Texture2D(128,128,TextureFormat,RGB32,false),  rederer.material.mainTexture=texture;  }  参见:Texture2D Texture2D,textureFormat  TextureWrapMode     纹理的包裹模式,对应与 texture inspector 中的设置     你可以能够平铺纹理(重复)或者映射一个纹理到物体上(裁剪)      参见:Texture.wrapMode,texture assets  值  ◆TextureFormat.Clamp  描述:裁剪纹理到边界上最后一个像素  在映射一个纹理到物体上并且你不想纹理平铺时,这个可以避免包裹的不真实,UV 坐 标将被裁剪到返回 0….1.当 UV 大于 1 或小于 0,将使用边界上的最后一个像素  renderer.material.mainTexture.wrapMode=TextureWrapMode.Clamp;  参见:Texture.wrapMode,texture assets.  ◆TextureWrapMode.Repear  描述:平铺纹理,创建一个重复效果  当 UV 超出 0….1 范围,整数部分将被忽略,这样就创建了一个重复效果。  renderer.material.mainTexture.wrapMode=TextureWrapMode.Repear;  参见:Texture.wrapMode,texture assets.  WrapMode     在没有时间帧定义的地方如何对待时间  值  ◆WrapMode.ClampForever  描述:播放动画。当它到达末端时,它将保持在最后一帧但不会停止播放  这个可用于附加的动画,当它们到达最大时不应该停止播放。  ◆WrapMode.Default  描述:从动画曲线中读取重复模式,可以被设置为 Loop 或 PingPong  ◆WrapMode.Loop  描述:当时间到达动画剪辑的末端,时间将从开始继续。      动画将不会停止播放  ◆WrapMode.Once  描述:当时间到达动画剪辑的末端,剪辑将自动停止播放  ◆WrapMode.PingPong  描述:当时间到达动画剪辑的末端时,时间将在开始和接受之间来回播放  动画不会停止播放  三、  编辑器类  AnimationClipCurveData     类     一个 AnimationClipCurveData 对象包含所有在 AnimationClip 中表示一个特定曲线所 需要的所有信息,这个曲线制作一个附加到游戏物体/动画骨骼上的组件/材质属性的动画。    注意:这是一个编辑器类。为了使用它你必须放置脚本到工程文件夹的 Assets/Editor 中,编辑器类位于 UnityEditor 命名空间因此对于 C#脚本你需要在脚本开始位置添加 “usingUnityEditor”  变量  ◆  var curve:AnimationCurve  描述:实际的动画曲线  ◆  var path:string  描述:背动画的游戏物体/骨骼的路径  ◆  var propertyName:string  描述:被动画的属性的名称  ◆  var target:Object  描述:被动画的组件/材质  ◆  var type:Type  描述:被动画的组件/材质类型  AnimationUtility     类     用于修改动画剪辑的编辑器工具函数     注意:这是一个编辑器类。为了使用它你必须防止脚本到工程文件夹的 Assets/Editor 中,编辑器类位于 UnityEditor 命名空间因此对于 C#脚本你需要在脚本开始位置添加 “usingUnityEditor”  类方法  ◆  static funciton GetAllCurves(clip:AnimationClip,includeCurveData:boll=ture);  AmimationClipCurveData[]  描述:从一个特定的动画剪辑上取回所有曲线  如果 includeCurveData 为假,所有在返回结果中的动画曲线将为 null,当你只想获取曲 线类型和名称的列表时使用这个。  ◆  static  funciton  GetAnimatableProperties ( go : GameObject ): AnimationClipCurveData[]  描述:取回附加在改游戏物体上所有组件/材质上的所有可动画的属性  ◆  static function GetEditorCurve(clip:AnimationClip,relativePath:string,type:Type, propertyName:string):AnimationCurve  描述:Unity 自动在内部组合位置曲线,缩放曲线,选择曲线  因此变换曲线总是组合的并且它们的关键帧总是所有关键帧点的联合。在编辑器中动     画剪辑让你指定特定的不必组合的编辑器曲线,因此它让用户以更直观的方式编辑曲线。  ◆  static function GetFloatValue(root:GameObject,relativePath:string,type:Type, propertyName:string,out data:float):bool  描述:通过采样特定的游戏对象上的一个曲线值得到当前的浮点值  用来记录关键帧  ◆static function SetEditorCurve(clip:AnimationClip,relativePath:string,type:Type, propertyName:string,curve:AnimationClip):void  描述:Unity 自动在内部组合位置曲线,缩放曲线,选择曲线  因此变换曲线总是组合的并且它们的关键帧总是所有关键帧点的联合。在编辑器中动 画剪辑让你指定特定的不必组合的编辑器曲线,因此它让用户以更直观的方式编辑曲线。  AssetDatabase     类     一个用来访问资源并在资源上执行操作的接口     注意:这是一个编辑器类。为了使用它你必须防止脚本到工程文件夹的 Assets/Editor 中,编辑器类位于 UnityEditor 命名空间因此对于 C#脚本你需要在脚本开始位置添加 “usingUnityEditor”  类方法  ◆static funcit on AddObjectToAsset(objectToAdd:bject,assetPath:string):vold  描述:添加 objectToAdd 到 path 上已有的资源中  请注意你应该只添加资源到 asset 资源,例如导入模型或纹理资源将丢失它们的数据  @MenuItem(”eObject/Create Matenal”)  satic function CreateMaterial(){  //  创建一个简单材质资源  var material = new Material (Shader.Find("Specular"));  AssetDatabase.CreateAsset(material, "Assets/MyMaterial.mat");  //  给它添加一个动画剪辑  var animationClip = new AnimationClip();  animationClip.name=“My Clip”;  AssetDatabase.AdObjectToAsset(animationClip,matcrial);  //  添加一个物体后重导入这个资源  //  否则这个改变只会显示在保持工程的时候  AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(animationClip));  //  打印已创建资源的路径  Debug.Log(AssetDatabase.GetAssetPath(material));  }  ◆static funciton AddObjectToAsset(objectToAdd:Object,assetObject:Object):void  描述:添加 objectToAdd 到由 assObject 标识的已有资源中  请注意你应该只添加资源到 asset 资源,例如导入模型或纹理资源将在重新导入或退出 时丢失它们的数据  @MenuItem(”GameObject/ Create Matenal”)  satic function CreateMaterial(){  //  创建一个简单材质资源  var material = new Material (Shader.Find("Specular"));  AssetDatabase.CreateAsset(material, "Assets/MyMaterial.mat");      //  给它添加一个动画剪辑  var animationClip = new AnimationClip();  animationClip.name=“My Clip”;  AssetDatabase.AdObjectToAsset(animationClip,matcrial);  //  添加一个物体后重导入这个资源  //  否则这个改变只会显示在保持工程的时候  AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(animationClip));  //  打印已创建资源的路径  Debug.Log(AssetDatabase.GetAssetPath(material));  }  ◆  static funciton AddPathToGUID(path:string):string  描述:获得指定 path 上的资源 GUID  ◆  static funciton Contains(obj:Object):bool  ◆  static funciton Contains(instanceID:int):bool  描述:对象是一个资源  当一个对象是一个资源的时候(对应与 Assets 文件夹中的一个文件)返回真,否则返 回假(例如在场景中的物体,或在运行时创建的物体)  ◆  static funciton CopyAsset(path:string,newPath:string):bool  描述:复制在 path 上的资源并将它存储在 newPaht  ◆  static funciton CreateAsset(asset:Object,path:shring):void  描述:在路径上创建一个新的资源,你必须确保路径使用一个被支持的扩展名(材质 用“mat”立方贴图用“cubemap”皮肤用“GUISkin”动画用“anim”并且其他任意的资源 用“asset”)  资源被创建后你可以使用 AssetDatabaseAddObjectToAsset 添加更多资源到文件中,如 果资源已经在 path 上,它将被删除并创建新的资源  @MenuItem(”GameObject/ Create Matenal”)  satic function CreateMaterial(){  //  创建一个简单材质资源  var material = new Material (Shader.Find("Specular"));  AssetDatabase.CreateAsset(material, "Assets/MyMaterial.mat");  //  打印已创建资源的路径  Debug.Log(AssetDatabase.GetAssetPath(material));  }  ◆  static funciton DeleteAsset(path:string):bool  描述:删除路径上的资源  如果资源被成功删除返回真,如果它不存在或者不能被移除返回假  ◆  static funciton GenerateUniqueAssetPath(path:string):string  描述:为资源产生一个新的唯一路径  ◆  static funciton GetAssetPath(assetObject:Object):string  ◆  static funciton GetAssetPath(instanceID:int):string  描述:返回相对于工程文件夹的路径名,资源被存储在哪里  @MenuItem(”GameObject/ Create Matenal”)  satic function CreateMaterial(){  //  创建一个 简单材质资源      var material = new Material (Shader.Find("Specular"));  AssetDatabase.CreateAsset(material, "Assets/MyMaterial.mat");  //  打印已创建资源的路径  Debug.Log(AssetDatabase.GetAssetPath(material));  }  ◆  static funciton GetCachedIcon(path:string):Texture  描述:在给定的资源路径中取回该资源的图标  ◆  static funciton GUIDToAssetPath(guid:string):string  描述:转换 GUID 到它当前的资源路径  ◆  static  funciton  ImportAsset ( path : string , options : ImportAssetOptions=ImportAssetOptions.Default):void  描述:导入路径上的资源  ◆  static funciton IsMainAsset(obj:Object):bool  描述:为资源产生一个新的唯一路径  ◆  static funciton IsMainAsset(instaneeID:int):bool  描述:在工程窗口中,该资源是一个主资源  例如,一个导入的模型有一个游戏物体作为它的根,还有一些网格和子游戏物体,这个 情况下,根游戏物体是一个主资源  ◆  static funciton LoadAllAssetsAtPath(assetPath:string):boject  描述:返回 assetPath 上的所有资源物体的数值  某些资源文件也许包含多个物体(例如一个 Maya 文件可能包含多个网格和游戏物体) assetPath 是相对于工程文件夹的路径  ◆  static funciton LoadAllAssetsAtPath(assetPath:string,type:Type):Object  描述:返回给定路径上的资源,如果它继承自 type  /assetPath 是相对工程文件夹的路径  ◆  static funciton LoadMainAssetAtPath(assetPath:string):Object  描述:返回位于 assetPath 的主资源  /assetPath 是相对工程文件夹的路径  ◆  static funciton MoveAsset(oldPath:string,newPath:string):string  参数  oldPath     这个资源的当前路径  newPath    资源应该被移动到的路径  返回:string  如果资源被成功移动这个是空字符串,否则是一个错误字符串  描述:从一个文件夹移动一个资源到另一个文件夹  ◆  static funciton MoveAssetToTrash(path:string):bool  描述:移动路径上的资源到回收站  如果资源被成功移除返回真,否则为假  ◆static funciton OpenAsset(instanceID:int,lineNumber:int=‐1):bool  ◆static funciton OpenAsset(target:Object,lineNumber:int=‐1):bool  描述:在外部编辑器中打开 target 资源,图像处理程序或者建模工具,根据资源的类 型  如果是一个文本文件,lineNumber 指定文本编辑器选择那一行  ◆static funciton Refresh(options:ImportAssetOptions=ImportAssetOptions,Default): void      描述:导入任何改变的资源  导入任何已经改变了内容的或者被从工程文件夹中添加/移除的资源  ◆  static funciton RenameAsset(pathName:string,newName:string)“string  参数  pathName             该资源的当前路径  newName             该资源的新名称  返回:string  如果资源被成功重命名,是一个空的字符串,否则是一个错误字符串  描述:重命名一个资源文件  ◆static funciton SaveAssets():void  描述:将未保存的改变写入磁盘  ◆static funciton StartAssetEditing():void  描述:开始资源导入,这可以让你组织几个资源导入为一个更大的导入操作  ◆static funciton StopAssetEditing():void  描述:停止资源导入,这可以让你组织几个资源导入为一个的导入操作  ◆static funciton ValidateMoveAsset(oldPath:string,newPath:string):string  参数  oldPath              该资源的当前路径  newName            这个资源应该被移动到的路径  返回:string  如果资源被成功重命名,是一个空的字符串,否则是一个错误字符串  描述:检查一个资源文件是否可以被移动到另一个文件夹(并不实际移动这个文件)  参加:AssetDatabase.MoveAsset  Assettlmporter     类,继承自 Object     注意:这是一个编辑器类。为了使用它你必须防止脚本到工程文件夹的 Assets/Editor 中,编辑器类位于 UnityEditor 命名空间因此对于 C#脚本你需要在脚本开始位置添加 “usingUnityEditor”  变量  ◆var assetPath:string  描述:用于这个导入期的资源的路径名  类方法  ◆staric function GetAtPath(path:string):AssetImporter  描述:为 path 处的资源收回资源导入期  参加:MobelImporter,TextmreLmporter,AudioImporter  继承的成员  继承的变量  Name             对象的名称  hideFlags          该物体是否被隐藏,保存在场景中或被用户修改  继承的函数  GetInstauceID      返回该物体的实例 ID  继承的类函数  Operatorbool       这个物体存在吗  Instantlate         克隆 original 物体并返回这个克隆  Destroy           移除一个游戏物体,组件或资源  DestryImnedinte    立即销毁物体 obj,强力建议使用 Destroy 代替      FindObjectsOFType  返回所有类型为 type 的激活物体  FindObjectOFType  返回第一个类型为 type 的激活物体  Operator==        比较两个物体是否相同  Operator!=       比较两个物体是否不相同  DontDestroyOnLoad  加载新场景时确保物体 target 不被自动销毁  AssetPostprocessor     类  AssetPostprocessor 让你进入导入流水线并且在导入资源之前或之后运行脚本     注意:这是一个编辑器类。为了使用它你必须防止脚本到工程文件夹的 Assets/Editor 中,编辑器类位于 UnityEditor 命名空间因此对于 C#脚本你需要在脚本开始位置添加 “usingUnityEditor”     这样你可以在导入设置中重载缺省的值或者修改导入的数据,如纹理和网格  变量  ◆var assetImporter:AssetImporter  描述:指向资源导入期  ◆var assetPath:string  描述:被导入的资源的路径名  ◆var preview:Texture2D  描述:指定一个自定义的纹理到这个变量以便产生导入资源的预览  函数  ◆function GetPostprocessOrder():int  描述:重载导入期执行的顺序  通过重载 GetPostprocessOrder 你能够排列后期处理执行的顺序,优先级较小的将首先 载入  ◆function Lo gError(warning:string,context:Object=null):vold  描述:记录一个导入错误到控制台  传递一个资源作为第二个参数来连接这个错误到编辑器中的资源  参见:DebugLogError  ◆function LogWarning(warning:string,context:Object=null):vold  描述:记录一个导入警告道控制台  传递一个资源作为第二个参数来连接这个警告到编辑器中的资源  参见:DebugLogError  消息传递  ◆function OnAssignMaterialModer(renderer:Renderer):Material  描述:取得源材质  返回的材质将被赋予给渲染器,如果返回 null,Unity 将使用它的缺省材质找到产生方 法来分配材质。soureeMaterial 在模型导入并将被销毁前,OnAssignMaterial 之后直接从模 型生成。  class MyMeshPostprocessor extends AssetPostprocessor {      function OnAssignMaterialModel (material : Material, renderer : Renderer) : Material      {          var materialPath = "Assets/" + material.name + ".mat";          //  查找在材质路径上是否有一个材质          //  关闭这个以便总是产生新材质              if (AssetDatabase.LoadAssetAtPath(materialPath))              return AssetDatabase.LoadAssetAtPath(materialPath);             //  使用 specular shader 创建一个新的资源          //  其他默认值来自模型          material.shader = Shader.Find("Specular");          AssetDatabase.CreateAsset(material, "Assets/" + material.name + ".mat");          return material;      }  }  ◆ function  OnPostprocessAllAssets ( importedAssets : string[],deletedAssets:string[],movedAssets:string[],movedFromPath:string[]):void  描述:OnPostprocessAllAssets 在一些资源被导入后调用(资源进度栏到达末端)  class MyAllPostprocessor extends AssetPostprocessor {      static function OnPostprocessAllAssets (          importedAssets : String[],          deletedAssets : String[],          movedAssets : String[],          movedFromAssetPaths : String[])      {          for (var str in importedAssets) {              Debug.Log("Reimported Asset: " + str);          }          for (var str in deletedAssets) {              Debug.Log("Deleted Asset: " + str);          }          for (var i=0;i