最新文章
Cocos2d-x游戏开发实例详解7:对象释放时机
03-25 13:59
Cocos2d-x游戏开发实例详解6:自动释放池
03-25 13:55
Cocos2d-x游戏开发实例详解5:神奇的自动释放
03-25 13:49
Cocos2d-x游戏开发实例详解4:游戏主循环
03-25 13:44
Cocos2d-x游戏开发实例详解3:无限滚动地图
03-25 13:37
Cocos2d-x游戏开发实例详解2:开始菜单续
03-25 13:32
unity手机控制物体移动
今天主要为大家详细介绍在 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(立方体)的位置移动和旋转。