Unity实用技巧之物体的旋转和移动控制。在游戏中,用水平轴来自控制物体的旋转,用垂直轴控制物体的前进退后移动。本节介绍如何在游戏中实现旋转和移动的简单案例,具体如下
工具/原料
Unity
GetAxis
一、知识要点
1、Input.GetAxis:publicstati罕铞泱殳cfloatGetAxis(stringaxisN锾攒揉敫ame);ReturnsthevalueofthevirtualaxisidentifiedbyaxisName.Thevaluewillbeintherange-1...1forkeyboardandjoystickinput.Iftheaxisissetuptobedeltamousemovement,themousedeltaismultipliedbytheaxissensitivityandtherangeisnot-1...1Thisisframe-rateindependent;youdonotneedtobeconcernedaboutvaryingframe-rateswhenusingthisvalue.
2、方法提要:1)旋转transform.Rotate(艘绒庳焰newVector3(0,h*Time.deltaTime*rotateS禊诬娱飑peed,0));2)移动transform.Translate(newVector3(v*Time.deltaTime*moveSpeed,0,0));
二、实用技巧之物体的旋转和移动控制
1、打开Unity,新建一个空工程,具体如下图
2、在场景中,新建一个“Plane”,和父子“Cube”,调小子“Cube”,并且把子“Cube”在“X”轴上移动些距离,具体如下图
3、新建一个“MoveRotateTest”脚本,双击脚本或者右键“OpenC#Project”打开脚本,具体如下图
4、在打开的“MoveRotateTest”脚本上编写代码,首先设置变量,来设置移动和旋转速度,然后在Update函数里面“GetAxis”获得移动和旋转输入,最后把移动和旋转值传给与动物体,代码及代码说明如下图
5、“MoveRotateTe衡痕贤伎st”脚本具体内容如下usingUnityEngine;publicclassMoveRotateTest:M泠贾高框onoBehaviour{publicfloatmoveSpeed=5f;publicfloatrotateSpeed=30f;//UpdateiscalledonceperframevoidUpdate(){floath=Input.GetAxis("Horizontal");floatv=Input.GetAxis("Vertical");transform.Translate(newVector3(v*Time.deltaTime*moveSpeed,0,0));transform.Rotate(newVector3(0,h*Time.deltaTime*rotateSpeed,0));}}
6、脚本编译正确,回到Unity界面,在场景中新建一个“GameObject”,把脚本“MoveRotateTest”赋给“GameObject”,可以适当调整移动旋转速度值,具体如下图
7、运行场景,水平键旋转,垂直键前后移动符合预期,具体如下图
8、到此,《Unity实用技巧之物体的旋转和移动控制》讲解结束,谢谢