Unity3d 脚本参考大全.doc

  1. 1、本文档共454页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Unity3d 脚本参考大全.doc

一、脚本概览 这是一个关于Unity内部脚本如何工作的简单概览。 Unity内部的脚本,是通过附加自定义脚本对象到游戏物体组成的。在脚本对象内部不同的函数被特定的事件调用,最常用的列在下面: Update: 这个函数在渲染一帧之前被调用。这里是大部分游戏行为代码被执行的地方,除了物理代码。 FixUpdate: 这个函数在每个物理时间步被调用一次。这是处理基于物理游戏行为的地方。 在任何函数之外的代码: 在任何函数之外的代码在物体被加载的时候运行。这个可以用来初始化脚本状态。 注意:文档的这个部分假设你是用Javascript,参考用C#编写脚本获取如何使用C#和Boo编写脚本的信息。 你也能定义时间句柄。他们的名称都以On开始,(例如OnCollisionEnter).为了查看完整的预定义时间的列表,请参考MonoBehaviour文档。 概览:常用操作 大多数游戏物体的操作是通过游戏物体的Transform和/或Rigidbody来做的。在行为脚本内部他们可以分别通过transform和rigidbody访问,因此如果你想绕着Y轴每帧旋转5度,你可以如下写: function Update(){ transform.Rotate(0,5,0); } 如果你想向前移动一个物体,你应该如下写: function Update(){ transform.Transtate(0,0,2); } 概览:跟踪时间 Time类包含一个非常重要的类变量,成为deltaTime.这个变量包含从上一次调用Update或FixedUpdate(根据你是在Update函数还是在FixedUpdate函数中)到现在的时间量。 所以对于上面的例子,修改它使这个物体以一个恒定的速度旋转而不依赖于帧率: function Update(){ transform.Rotate(0,5*Time.deltaTime,0); } 移动物体: function Update(){ transform.Transtate(0,0,2*Time.deltaTime); } 如果你加或减一个每帧改变的值,你应该将它与 Time.deltaTime 相乘,当你乘以Time.deltaTime时,你实际表达的是:我想以10米/秒移动这个物体而不是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和MonoBehaviour类文档。如果游戏物体没有你想取回类型的组件,上面的变量将被设置为null。 任何附加到一个游戏物体的组件或者脚本都可以通过GetComponent访问。 transform.Translate(0,1,0); //等同于 GetComponent(Transform).Translate(0,1,0); 注意transform和Transform之间大小写的区别,前者是变量(小写),后者是类或者脚本名称(大写),大小写的不同使你能够从类和脚本名中区分变量。 应用我们所学,你可以使用GetComponent找到任何附加在同一游戏物体上的脚本和组件。请注意要使下面的例子能够工作,你需要有一个名为OtherScript的脚本,其中包含一个DoSomething函数。OtherScript脚本必须与下面的脚本附加到相同的游戏物体上。 //这个用于在同一个游戏物体上找到名为OtherScript的脚本 //并调用它上面的DoSomething函数. function Update() { otherScript = Ge

文档评论(0)

czy2014 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档