文档详情

unity3d中文脚本使用手册.pdf

发布:2016-03-18约77.06万字共页下载文档
文本预览下载声明
  一、  脚本概览  这是一个关于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       
显示全部
相似文档