- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Unity3D 脚本中文参考 (1)
这是一个关于Unity内部脚本如何工作的简单概览。
Unity内部的脚本,是通过附加自定义脚本对象到游戏物体组成。在脚本对象内部不同的函数被特定的事件调用。最常用的列在下面:
Update:这个函数在渲染一帧之前被调用。这里是大部分游戏行为代码被执行的地方,除了物理代码。
FixedUpdate
这个函数在每个物理时间同步被调用一次。这是处理基于物理游戏行为的地方。
在任何函数之外的代码:
在任何函数之外的代码在物体被加载的时候运行。这个可以用来初始化脚本状态。
注意:文档的这个部分假设你是用JS,参考用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.Translate(0,0,2*Time.deltaTime);
}
如果你加或减一个每帧改变的值,你应该将它与Time.deltaTime相乘。当你乘以Time.deltaTime时,你实际表达:我想以10米/秒移动这个物体而不是10米/帧。这不仅仅是因为你的游戏将独立于帧率运行,同时也是因为运动的单位容易理解。(10米/秒)
另一个例子,如果你想随着时间增加光照的范围。下面的表达式,以2单位/秒改变半径。
function Update(){
?light.range *=2.0*Time.delta.Time;
}
? 当通过力处理刚体的时候,你通常下不必用Time.deltaTime乘,因为引擎已经为你考虑到了这点。
概览:访问其他组件
组件被附加到游戏物体。附加Renderer到游戏物体使它在场景中渲染,附加一个Camera使它变为相机物体。所有的脚本都是组件,因为它们能被附加到游戏物体。
最常用的组件可以作为简单成员变量访问:
? Component??? 可如下访问
Transform?????? transform
Rigidbody?????? rigidbody
Renderer??????? renderer
Camera???????? camera(only on camera 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 Updata(){
ot
您可能关注的文档
- UNIT3MyStrokeofLuckKirkDouglas2.doc
- unit3unittest.docx
- unit3_A课文PUBLIC_ATTITUDES_TOWARD_SCIENCE.doc
- Unit4lesplanfor改SS.doc
- unit4Grade7.doc
- Unit4Makingthenews--period1.doc
- unit4texttranslation.doc
- Unit4Thedangerofspacejunk.doc
- Unit4Upinspace.doc
- Unit4WildlifeProtection同步测试.doc
- Unity之Prefab和GameObject的正向和逆向查找引用.doc
- Unity_Pro_XL编程指导.doc
- Unity_Pro_XL编程入门指南.docx
- Unity小地图制作插件NJGMiniMap的简单使用.doc
- Unit_10_make_your_choice.doc
- Unity3D游戏引擎实战开发从入门到精通(坦克大战项目实战NGUI开发GameObject).doc
- UnityPro软件介绍1.doc
- Unit_1_Will_people_have_robots_单项选择100题_专练.docx
- Unit_1_Making_a_difference.doc
- Unity资源(客户端服务器).docx
最近下载
- 在原油中老化的螺杆泵定子氢化丁腈橡胶胶料的性能变化研究.pdf VIP
- 专题06现代文阅读之记叙文(必考文章)18篇(原卷版+解析).docx VIP
- JC∕T 2493-2018 建筑用免拆复合保温模板(可复制版).pdf
- 《线性代数》(陈建龙等)第四章 矩阵的特征值和特征向量.ppt VIP
- 屋顶分布式光伏发电项目设计、采购、施工、运维 投标方案(技术方案).pdf
- (deform挤压模拟课程设计.doc VIP
- 毕业设计(论文)-基于PLC的自动上料系统设计.docx VIP
- deform模拟软件实例操作与详细介绍.doc VIP
- 北京市建设工程质量检测见证取样指南 .pdf VIP
- 2022-2023学年河南省南阳市宛城区九年级(上)期中数学试卷(附答案详解).docx VIP
原创力文档


文档评论(0)