资源描述:
《游戏编程实现模型的平移与旋转.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Unity3D游戏引擎之脚本实现模型的平移与旋转脚本描述ScriptinginsideUnityconsistsofattachingcustomscriptobjectscalledbehaviourstogameobjects.Differentfunctionsinsidethescriptobjectsarecalledoncertainevents.Themostusedonesbeingthefollowing:Update:Thisfunctioniscalledbeforerenderingaframe.Th
2、isiswheremostgamebehaviourcodegoes,exceptphysicscode.FixedUpdate:Thisfunctioniscalledonceeveryphysicstimestep.Thisistheplacetodophysics-basedgamebehaviour.Codeoutsideanyfunction:Codeoutsidefunctionsisrunwhentheobjectisloaded.Thiscanbeusedtoinitialisethestateofthesc
3、ript.Note:SectionsofthisdocumentassumeyouareusingJavascript,butseeWritingscriptsinC#&BooforinformationabouthowtouseC#orBooscripts.大概意思是介绍三个重要的脚本函数Update:这个函数在渲染帧之前被调用,大部分的游戏行为代码都在这里执行,除物理代码。FixedUpdate:这个函数在每进行一次物理时间步调时被调用,它是基于物理的游戏行为。Codeoutsideanyfunction:这类函数在对象
4、加载时被调用,它可以用来脚本的初始化工作。本章我们着重讨论Update这个函数,创建脚本与绑定脚本的方法在第二章中已经介绍过了不会的盆友请去那里阅读。虽然官方推荐脚本使用JavaScript编辑,但是其实C#更符合Unity3D的编程思想,推荐新人先使用JavaScript,然后在学习C#,因为JavaScript更容易上手一些。在三维世界中创建两个矩形,然后在添加两个脚本分别绑定在这两个箱子上,脚本的名称暂时命名为js0、js1。在Project页面中打开刚刚创建的js0,发现Unity3D已经将Update函数添加在脚本
5、中了。模型的移动Translate方法中的三个参数分别标示,模型在三维世界中X、Y、Z轴移动的单位距离。1functionUpdate(){23//模型x轴,移动一个单位4transform.Translate(1,0,0);56//模型y轴,移动一个单位7transform.Translate(0,1,0);89//模型z轴,移动一个单位10transform.Translate(0,0,1);1112}执行代码发现参数为1速度居然移动的着么快,怎么能修改移动的速度呢?Time.deltaTime:标示上一次调用Updat
6、e一秒为标示每帧执行所消耗的时间。有了这个参数,我们就可以根据它修改方向移动的速度了。13functionUpdate(){1415//设置移动的范围16vartranslation:float=Time.deltaTime*10;1718//移动的方向19transform.Translate(translation,0,0);20transform.Translate(0,translation,0);21transform.Translate(0,0,translation);2223}模型的平移可以选择一个参照物,下
7、面代码第二个参数设置模型移动参照物,这里设置成摄像机。那么模型将以相对与摄像机进行移动。1functionUpdate(){23//设置移动范围4vartranslation:float=Time.deltaTime*10;56//相对于摄像机,模型向右移动。7transform.Translate(Vector3.right*translation,Camera.main.transform);89//相对于摄像机,模型向上移动。10transform.Translate(Vector3.up*translation,Ca
8、mera.main.transform);1112//相对于摄像机,模型向左移动。13transform.Translate(Vector3.left*translation,Camera.main.transform);1415}模型的旋转Rotate方法中的三个参数分别标示,模型在三维