Unity3D 脚本中文教程(一)
(2011-11-04 08:56:08)
转载▼
标签:
it
一、 脚本概览
这是一个关于 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 相乘。当你乘以