- 1、本文档共454页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中文Unity3D脚本参考.
Unity3D脚本参考
这是一个关于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脚本必须与下面的脚本附加到相同的物体上。
您可能关注的文档
- 中国铁塔公司站点通信电源系统配置原则(暂行)20141225..doc
- 中国钢铁资源服务网..doc
- 中国钢铁年会论文集内容..doc
- 中国钱币珍品系列2..docx
- 中国铁路十大枢纽介绍..docx
- 中国铁路局(公司)简介..doc
- 中国铁路客车转向架的发展..doc
- 中国钢铁行业概述..docx
- 中国铁道建筑总公司关于资产减值准备的暂行规定..doc
- 中国野生水果大全..docx
- 山东省青岛西海岸新区2024-2025学年上学期七年级期中考试数学试题(含答案解析).pdf
- 2024-2025学年北京版(2024)一年级上册期末模拟测试英语试卷(含答案解析).pdf
- 辽宁省鞍山市第一中学2024-2025学年高二上学期期中考试数学试卷(含答案解析).docx
- 广东省珠海市珠海中山大学附属中学2024一2025学年八年级上学期期中考试数学试题(含答案解析).docx
- 2023-2024学年江苏省盐城市盐都区二小教育集团译林版(三起)五年级下册4月期中测试英语试卷(含答案解析).docx
- 2023-2024学年河南省郑州市中牟县人教PEP版六年级上册期末教学质量监测英语试卷(含答案解析).docx
- 2023-2024学年河南省郑州市中牟县人教PEP版五年级上册期末教学质量监测英语试卷(含答案解析).pdf
- 2024-2025学年吉林省四平市铁西区人教PEP版(2024)三年级上册期中测试英语试卷(含答案解析).pdf
- 云南省昆明十中集团2024-2025学年七年级上学期期中考试数学试题(含答案解析).docx
- 江苏省盐城市东台市2024-2025学年九年级上学期11月期中数学试题(含答案解析).pdf
最近下载
- 2024霸王茶姬- 以东方茶会世界友品牌简介手册-65P.pptx VIP
- 焊点标准(DIP部分).pdf
- 大职赛生涯闯关参考答案.docx VIP
- 宁夏水务投资集团有限公司招聘笔试题库2023.pdf
- eo体系内审检查表.doc
- 桉木P-RC+APMP化机浆废水的污染特征与生物处理的研究.pdf VIP
- 《基于项目式学习在初中物理教学中培养学生问题解决能力的实践研究》课题研究方案.doc
- Unit4Funwithnumbers.(课件)-外研版(三起)(2024)英语三年级上册.pptx VIP
- 城市轨道交通全自动运行系统场景技术规范.pdf VIP
- 大学本科优质生源基地建设管理办法.docx
文档评论(0)