今天主要来说下unity手机控制物体移动的方法和步骤,主要是上次的项目做的就是这方面的内容,所以现在就把它拿出来给大家分享一下,如何去做,怎么才能把它做好,下面就开始来说下详细的步骤:
一、创建Unity项目
打开Unity游戏编辑器界面,在导航菜单栏中选择File ---> New Project菜单项,在弹出界面中选择Create new Project页面,将项目名命名为MobilityModel,然后再点击Create Project,完成项目的创建。
然后点击保存(Ctrl+S)保存场景。
二、构建模型
在Hierarchy视图中分别创建游戏对象Plane(面板)、Cube(立方体)、Sphere(球体)、Cylinder(圆柱体)、Capsule(胶囊体),然后鼠标拖动创建的游戏对象将他们摆放在合适的位置。
接下来在游戏中添加一个光源,在Hierarchy视图中选择Create--->Directional light菜单项,光源是游戏中非常重要的一个属性,一定要在游戏场景中设置它,如果不设置光源对象,Game视图会非常暗,严重影响游戏的效果。
三、添加脚本
在Project视图中点击Create--->JavaScript菜单项创建一个游戏脚本,将其命名为MobilityModelScript.js,在脚本上编写如下代码:
Mobilitymodelscript.js代码
- //模型移动速度
- var TranslateSpeed = 10;
- //模型旋转速度
- var RotateSpeed = 1000;
- //绘制UI界面
- function OnGUI(){
- //设置GUI背景色
- GUI.backgroundColor = Color.red;
- if(GUI.Button(Rect(10,10,70,30),"向左旋转")){
- //向左旋转
- transform.Rotate(Vector3.up * Time.deltaTime * (-RotateSpeed));
- }
- if(GUI.Button(Rect(90,10,70,30),"向前移动")){
- //向前移动
- transform.Translate(Vector3.forward * Time.deltaTime * TranslateSpeed);
- }
- if(GUI.Button(Rect(170,10,70,30),"向右旋转")){
- //向右旋转
- transform.Rotate(Vector3.up * Time.deltaTime * RotateSpeed);
- }
- if(GUI.Button(Rect(90,50,70,30),"向后移动")){
- //向后移动
- transform.Translate(Vector3.forward * Time.deltaTime * (-TranslateSpeed));
- }
- if(GUI.Button(Rect(10,50,70,30),"向左移动")){
- //向左移动
- transform.Translate(Vector3.right * Time.deltaTime * (-TranslateSpeed));
- }
- if(GUI.Button(Rect(10,50,70,30),"向右移动")){
- //向右移动
- transform.Translate(Vector3.right * Time.deltaTime * TranslateSpeed);
- }
- //显示模型位置信息
- GUI.Label(Rect(250,10,200,30),"模型位置"+transform.position);
- //显示模型旋转信息
- GUI.Label(Rect(250,50,200,30),"模型旋转"+transform.rotation);
- }
OnGUI()方法用来绘制GUI界面组件。
GUI.Button():设置一个按钮,返回true时表示该按钮被按下。
GUI.Label():设置一个文本框。
transform:为当前绑定模型的变换对象。
transform.Rotate():设置模型旋转。
transform.Translate():设置模型平移。
Time.deltaTime:该数值为一个只读属性,不可修改,表示完成最后一帧的事件,单位为秒。
Vector3:标志一个模型移动或者旋转的方法。
Rect:规定一个矩形区域,用于显示控件。
将编写好的脚本对象,将其从Project视图拖拽到Hierarchy视图中的立方体(Cube)对象上,如果没有提示错误,表示脚本绑定成功,运行游戏后该游戏对象将执行该脚本中的内容。
目前立方体对象与其他模型对象之间是不存在碰撞的,但是运行游戏后,可以控制立方体(Cube)直接穿越另一个模型对象。为了让模型对象之间具有物理的碰撞,需要给模型对象添加一个刚体(Rigidbody)属性,添加方式:首先在Hierarchy视图中选中立方体对象,在Uinty导航菜单栏中选择Component --> Physics
-->Rigidbody菜单项即可。
四、测试运行
点击运行按钮就能看到结果,可以点击显示的六个按钮对象,可以移动Cube(立方体)的位置和旋转。