CopyRight 2012-2014 DS文库版权所有
Unity3D-入门教程
(0 次评价)1164 人阅读0 次下载
一、一、脚本概览脚本概览 这是一个关于这是一个关于 Unity 内部脚本如何工作的简单概览。内部脚本如何工作的简单概览。 Unity 内部的脚本,是通过附加自定义脚本对象到游戏物体组成的。在脚本对象内部不 同志的函数被特定的事件调用。最常用的列在下面: 内部的脚本,是通过附加自定义脚本对象到游戏物体组成的。在脚本对象内部不 同志的函数被特定的事件调用。最常用的列在下面: Update:: 这个函数在渲染一帧之前被调用,这里是大部分游戏行为代码被执行的地方,除了物 理代码。 这个函数在渲染一帧之前被调用,这里是大部分游戏行为代码被执行的地方,除了物 理代码。 FixedUpdate:: 这个函数在每个物理时间步被调用一次,这是处理基于物理游戏的地方。这个函数在每个物理时间步被调用一次,这是处理基于物理游戏的地方。 在任何函数之外的代码:在任何函数之外的代码: 在任何函数之外的代码在物体被加载的时候运行,这个可以用来初始化脚本状态。在任何函数之外的代码在物体被加载的时候运行,这个可以用来初始化脚本状态。 注意:文档的这个部份假设你是用注意:文档的这个部份假设你是用 Javascript,参考用,参考用 C#编写获取如何使用编写获取如何使用 C#和和 Boo 编写脚本的信息。编写脚本的信息。 你也能定义事件句柄,它们的名称都以你也能定义事件句柄,它们的名称都以 On 开始, (例如开始, (例如 OnCollisionEnter) ,为了查看完 整的预定义事件的列表,参考 ) ,为了查看完 整的预定义事件的列表,参考 MonoBehaviour 文档。文档。 概览:常用操作概览:常用操作 大多数游戏物体的操作是通过游戏物体的大多数游戏物体的操作是通过游戏物体的 Transform 或或 Rigidbody 来做的,在行为脚本 内部它们可以分别通过 来做的,在行为脚本 内部它们可以分别通过 transform 和和 rigidbody 访问,因此如果你想绕着访问,因此如果你想绕着 Y 轴每帧旋转轴每帧旋转 5 度, 你可以如下写: 度, 你可以如下写: functionUpdate()(){ transform.Rotate(0,5,0); } 如果你想向前移动一个物体,你应该如下写:如果你想向前移动一个物体,你应该如下写: functionUpdate()(){ transform.Translate(0,0,2); } 概览:跟踪时间概览:跟踪时间 Time 类包含了一个非常重要的类变量,称为类包含了一个非常重要的类变量,称为 deltaTime,这个变量包含从上一次调用,这个变量包含从上一次调用 Update 或或 FixedUpdate(根据你是在(根据你是在 Update 函数还是在函数还是在 FixedUpdate 函数中)到现在的时 间量。 函数中)到现在的时 间量。 所以对于上面的例子,修改它使这个物体以一个恒定的速度旋转而不依赖于帧率:所以对于上面的例子,修改它使这个物体以一个恒定的速度旋转而不依赖于帧率: functionUpdate()(){ transform.Rotate(0,5*Time.deltaTime,0); } 移动物体:移动物体: functionUpdate()(){ transform.Translate(0,,0,2*Time.deltaTime); } 如果你加或是减一个每帧改变的值,你应该将它与如果你加或是减一个每帧改变的值,你应该将它与 Time.deltaTime 相乘。当你乘以相乘。当你乘以 Time.deltaTime 时,你实际的表达:我想以时,你实际的表达:我想以 10 米米/秒移动这个物体不是秒移动这个物体不是 10 米米/帧。这不仅仅 是因为你的游戏将独立于帧而运行,同时也是因为运动的单位容易理解。 帧。这不仅仅 是因为你的游戏将独立于帧而运行,同时也是因为运动的单位容易理解。( 米米/秒秒) 另一个例子,如果你想随着时间增加光照的范围。下面的表达式,以另一个例子,如果你想随着时间增加光照的范围。下面的表达式,以 2 单位单位/秒改变半秒改变半 径。径。

打分:

0 星

用户评论:

联系我们

免费联系电话

18518411470

论坛客服QQ:314080701

邮箱:zhuda@nbims.com

服务时间:周一到周日8:00-23:30

关注我们

关注官方微信

意见反馈手机版小黑屋中国BIM之家 ( 京ICP备16062176号 )|网站地图 防水墙  

Powered by BIM之家网 X3.3Licensed   © 2016-2017 Comsenz Inc.