unity手机控制物体移动

2015年01月27日 09:31 1 点赞 0 评论 更新于 2025-11-21 15:31

今天主要为大家详细介绍在 Unity 中实现手机控制物体移动的方法和步骤。由于上次项目涉及这方面内容,所以现在将其分享出来,下面开始详细说明具体步骤。

一、创建 Unity 项目

打开 Unity 游戏编辑器界面,在导航菜单栏中选择“File” -> “New Project”菜单项。在弹出的界面中,选择“Create new Project”页面,将项目命名为“MobilityModel”,然后点击“Create Project”完成项目创建。创建完成后,按“Ctrl + S”保存场景。

二、构建模型

1. 创建游戏对象

在 Hierarchy 视图中分别创建游戏对象:Plane(面板)、Cube(立方体)、Sphere(球体)、Cylinder(圆柱体)、Capsule(胶囊体)。创建完成后,使用鼠标拖动这些游戏对象,将它们摆放在合适的位置。

2. 添加光源

在游戏中添加光源是非常重要的,因为它会直接影响游戏场景的显示效果。若不设置光源对象,Game 视图会非常暗,严重影响游戏体验。在 Hierarchy 视图中选择“Create” -> “Directional light”菜单项来添加光源。

三、添加脚本

1. 创建脚本

在 Project 视图中点击“Create” -> “JavaScript”菜单项创建一个游戏脚本,并将其命名为“MobilityModelScript.js”。

2. 编写脚本代码

在脚本中编写以下代码:

// 模型移动速度
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(170, 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);
}

3. 代码中重要方法和属性说明

  • OnGUI() 方法:用于绘制 GUI 界面组件。
  • GUI.Button():用于设置一个按钮,当按钮被按下时返回 true
  • GUI.Label():用于设置一个文本框。
  • transform:表示当前绑定模型的变换对象。
  • transform.Rotate():用于设置模型旋转。
  • transform.Translate():用于设置模型平移。
  • Time.deltaTime:这是一个只读属性,表示完成最后一帧所花费的时间,单位为秒,不可修改。
  • Vector3:用于标识一个模型移动或者旋转的方向。
  • Rect:用于规定一个矩形区域,该区域用于显示控件。

4. 绑定脚本

将编写好的脚本对象从 Project 视图拖拽到 Hierarchy 视图中的立方体(Cube)对象上。如果没有提示错误,则表示脚本绑定成功。运行游戏后,该游戏对象将执行脚本中的内容。

5. 添加刚体属性

目前立方体对象与其他模型对象之间不存在碰撞,运行游戏后,立方体(Cube)可以直接穿越其他模型对象。为了让模型对象之间具有物理碰撞效果,需要给模型对象添加一个刚体(Rigidbody)属性。添加方式如下:首先在 Hierarchy 视图中选中立方体对象,然后在 Unity 导航菜单栏中选择“Component” -> “Physics” -> “Rigidbody”菜单项。

四、测试运行

点击运行按钮,即可看到运行结果。此时可以点击显示的六个按钮,控制 Cube(立方体)的位置移动和旋转。