Unity移动端手势操作——旋转3D物体
2016-10-14 15:14
771 查看
自己写的一套用于Unity移动端手势操作的判断,主要有单指移动3D物体、单指旋转3D物体、双指缩放3D物体,这里首先分开介绍单指旋转3D物体,如下所示:
using UnityEngine; using System.Collections; using UnityEngine.EventSystems; using System; public class RotateControl : GestureControl { protected override void InputCheck() { #region 单点触发旋转(真实模型旋转) if (Input.touchCount == 1) { //触摸为移动类型 if (Input.GetTouch(0).phase == TouchPhase.Moved) { status = 1; try { StartCoroutine(CustomOnMouseDown()); } catch (Exception e) { Debug.Log(e.ToString()); } } } #endregion #region 键盘A、D、W、S模拟旋转(真实模型旋转) if (Input.GetKeyDown(KeyCode.A)) { transform.Rotate(Vector3.up, 45 * Time.deltaTime, Space.World); } if (Input.GetKeyDown(KeyCode.D)) { transform.Rotate(Vector3.up, -45 * Time.deltaTime, Space.World); } if (Input.GetKeyDown(KeyCode.W)) { transform.Rotate(Vector3.left, 45 * Time.deltaTime, Space.World); } if (Input.GetKeyDown(KeyCode.S)) { transform.Rotate(Vector3.left, -45 * Time.deltaTime, Space.World); } #endregion } IEnumerator CustomOnMouseDown() { //当检测到一直触碰时,会不断循环运行 while (Input.GetMouseButton(0)) { //判断是否点击在UI上 #if UNITY_ANDROID || UNITY_IPHONE if (EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId)) #else if (EventSystem.current.IsPointerOverGameObject()) #endif { Debug.Log("当前点击在UI上"); } else { float XX = Input.GetAxis("Mouse X"); float YY = Input.GetAxis("Mouse Y"); #region //判断左右滑动的距离与上下滑动距离大小 if (Mathf.Abs(XX) >= Mathf.Abs(YY)) { //单指向左滑动情况 if (XX < 0) { transform.Rotate(Vector3.up, 45 * Time.deltaTime, Space.World); } //单指向右滑动情况 if (XX > 0) { transform.Rotate(-Vector3.up, 45 * Time.deltaTime, Space.World); } } else { //单指向下滑动情况 if (YY < 0) { transform.Rotate(Vector3.left, 45 * Time.deltaTime, Space.World); } //单指向上滑动情况 if (YY > 0) { transform.Rotate(-Vector3.left, 45 * Time.deltaTime, Space.World); } } #endregion } yield return new WaitForFixedUpdate(); } } }
相关文章推荐
- Unity移动端手势操作——移动3D物体
- Unity移动端手势操作——缩放3D物体
- Unity 3D鼠标操作实现旋转、缩放观察物体
- unity移动端操作方式(旋转、缩放手势)总结
- Unity 3D 中实现对物体 位置(position) 旋转(rotation) 大小(scale) 的全面控制
- 【Unity 3D学习】获取鼠标滑动方向(上下左右)-控制摄像机围绕物体旋转
- Unity 移动端简单手势控制(移动,旋转,缩放)
- Unity移动端手势操作——3种手势互斥判断
- Unity:Transform之四元数的移动端单指滑动旋转模型操作
- Unity通过鼠标或者手势实现拉进拉远,旋转等操作的常用方法
- unity 3d 鼠标旋转物体脚本
- Unity中摄像机绕物体旋转和拉近拉远视角的操作
- Unity按住左键旋转物体,按住右键移动物体,移动端单指旋转物体,双指移动物体
- Unity:Transform之四元数的移动端单指滑动旋转模型操作
- Unity:Transform之四元数的移动端单指滑动旋转模型操作
- Unity鼠标自由查看3D物体之直接旋转物体
- unity 3d中简单巧妙的实现拖动鼠标旋转物体
- UNITY移动平台上的手势操作——旋转、缩放
- < Unity 3D专栏 >批量操作,界面元素的显示状态
- U3D中对物体的平移旋转缩放位置操作