PC端

  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. public class DragRound : MonoBehaviour {
  5.  
  6. public Transform obj;
  7. public float speed = ;
  8.  
  9. private bool _mouseDown = false;
  10.  
  11. void Update ()
  12. {
  13. if (Input.GetMouseButtonDown())
  14. _mouseDown = true;
  15. else if (Input.GetMouseButtonUp())
  16. _mouseDown = false;
  17.  
  18. if (_mouseDown)
  19. {
  20. float fMouseX = Input.GetAxis("Mouse X");
  21. float fMouseY = Input.GetAxis("Mouse Y");
  22. obj.Rotate(Vector3.up, -fMouseX * speed, Space.World);
  23. obj.Rotate(Vector3.right, fMouseY * speed, Space.World);
  24. }
  25. }
  26. }

移动端:

  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. public class DragRoundPhone : MonoBehaviour {
  5.  
  6. private Vector3 startFingerPos;
  7. private Vector3 nowFingerPos;
  8. private float xMoveDistance;
  9. private float yMoveDistance;
  10. private int backValue = ;
  11. public GameObject obj;
  12. void Update()
  13. {
  14. if (Input.touchCount <= )
  15. {
  16. return;
  17. }
  18.  
  19. if (Input.GetTouch().phase == TouchPhase.Began)
  20. {
  21. //Debug.Log("======开始触摸=====");
  22. startFingerPos = Input.GetTouch().position;
  23. }
  24.  
  25. nowFingerPos = Input.GetTouch().position;
  26.  
  27. if ((Input.GetTouch().phase == TouchPhase.Stationary) || (Input.GetTouch().phase == TouchPhase.Ended))
  28. {
  29. startFingerPos = nowFingerPos;
  30. //Debug.Log("======释放触摸=====");
  31. return;
  32. }
  33. // if (Input.GetTouch(0).phase == TouchPhase.Ended) {
  34. //
  35. // }
  36. if (startFingerPos == nowFingerPos)
  37. {
  38. return;
  39. }
  40. xMoveDistance = Mathf.Abs(nowFingerPos.x - startFingerPos.x);
  41. yMoveDistance = Mathf.Abs(nowFingerPos.y - startFingerPos.y);
  42.  
  43. if (xMoveDistance > yMoveDistance)
  44. {
  45. if (nowFingerPos.x - startFingerPos.x > )
  46. {
  47. //Debug.Log("=======沿着X轴负方向移动=====");
  48. backValue = -; //沿着X轴负方向移动
  49. }
  50. else
  51. {
  52. //Debug.Log("=======沿着X轴正方向移动=====");
  53. backValue = ; //沿着X轴正方向移动
  54. }
  55. }
  56. else
  57. {
  58. if (nowFingerPos.y - startFingerPos.y > )
  59. {
  60. //Debug.Log("=======沿着Y轴正方向移动=====");
  61. backValue = ; //沿着Y轴正方向移动
  62. }
  63. else
  64. {
  65. //Debug.Log("=======沿着Y轴负方向移动=====");
  66. backValue = -; //沿着Y轴负方向移动
  67. }
  68.  
  69. }
  70. if (backValue == -)
  71. {
  72. obj.transform.Rotate(Vector3.up * - * Time.deltaTime * , Space.World);
  73. }
  74. else if (backValue == )
  75. {
  76. obj.transform.Rotate(Vector3.up * Time.deltaTime * , Space.World);
  77. }
  78. else if (backValue == )
  79. {
  80. obj.transform.Rotate(Vector3.right * Time.deltaTime * , Space.World);
  81. }
  82. else if (backValue == -)
  83. {
  84. obj.transform.Rotate(Vector3.right * - * Time.deltaTime * , Space.World);
  85. }
  86.  
  87. }
  88. }

Unity 鼠标旋转物体360展示的更多相关文章

  1. unity鼠标拖动物体旋转

    using System.Collections; using System.Collections.Generic; using UnityEngine; /// <summary> / ...

  2. 【three.js第三课】鼠标事件,移动、旋转物体

    1.下载three.js的源码包后,文件夹结构如下: 2.在[three.js第一课]的代码基础上,引入OrbitControls.js文件,此文件主要用于 对鼠标的操作. 该文件位置:在文件结构中 ...

  3. 关于Unity中鼠标选取物体的解决方案

    今天修改了之前写的飞机大战的代码,原来的不足之处是点击屏幕的任意一点都可以移动飞机,也就是没有检测鼠标到底有没有点到飞机上. 我先是用之前的3D拾取技术,发现没有反应,才意识到我这个plane飞机节点 ...

  4. unity的旋转

    绕着一个点旋转 : transform.RotateAround(Vector3.zero, Vector3.up, speed* Time.deltaTime ); 第一个参数,点的位置.第二个参数 ...

  5. 通过CSS3实现:鼠标悬停图片360度旋转效果

    效果很好玩,代码很简单: 效果: 鼠标放置在图片上:360度顺时针旋转 鼠标离开图片:图片260度逆时针旋转 只要将下面代码拷贝过去,并将图片改成你想要的就可以看到效果 <!doctype ht ...

  6. Unity 3d 实现物体跟随摄像机视野运动

    https://blog.csdn.net/qq_31411825/article/details/61623857 Unity 3d 实现物体跟随摄像机视野运动Created by miccall ...

  7. Unity 鼠标控制视角功能和动画播放冲突解决办法

    环境是 unity 5.6.4 情况说明: 1 模型动画单独播放是没问题的. 2 鼠标控制模型是没问题的. 3 在start中播放模型动画,即使鼠标控制视角代码还挂载着,但是模型却无法用鼠标旋转等操作 ...

  8. 鼠标划过用户名时在鼠标右下角显示div展示用户资料

    最近做一个网站论坛,为了方便会员之间相互了解,又不想再做一个页面展示用户资料,就想到了鼠标划过用户名时在鼠标右下角显示div展示用户资料这个效果, 这里要注意的该方法不是给每个用户名的旁边都绑定一个d ...

  9. canvas实现跟随鼠标旋转的箭头

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta ht ...

随机推荐

  1. (转)spring 框架介绍

    转自:http://www.cnblogs.com/wawlian/archive/2012/11/17/2775435.html 1.Spring MVC简介 Spring MVC框架是有一个MVC ...

  2. js及jsp.java查错的几种方式

    一.js 1.console.log("你想输出的内容"); 2.alert("你想输出的内容"); 3.debugger;(记得打开F12) 4.快速找到js ...

  3. int*v=newint[src.cols*4]

    在学习:使用OpenCV2.x计算图像的水平和垂直积分投影中,有下图一种代码: 对比上面两个代码对于同一张图片求得的结果会发现不同: 为什么会出现这个原因呢?不知道为啥这样初始化? 首先查看一下图片深 ...

  4. numpy基础知识练习

    # 1.导入numpy模块 # 2.创建一个大小为10的空向量 # 3.创建一个大小为10的空向量,但是第五个值为1 # 4.创建一个10-49的ndarray数组 # 5.创建一个3x3的矩阵,其值 ...

  5. JS定义类的六种方式详解

    转载自: http://www.jb51.net/article/84089.htm 在前端开发中,经常需要定义JS类.那么在JavaScript中,定义类的方式有几种,分别是什么呢?本文就JS定义类 ...

  6. CSS遮罩层简易写法

      现在很多站点弹出框,都需要一个遮罩层.写法很多,以下是我比较喜欢的一种: .box{ position:absolute; top:0; bottom:0; left:0; right:0; ba ...

  7. LUT

    FPGA大多为LUT+寄存器的够,实现工艺为SRAM:寄存器很好理解,存储器的一种,用于存储指令和数据,多位于CPU内.拿什么是LUT呢? LUT:即Look up table,查找表,其本质是一个R ...

  8. layui下拉框数据过万渲染渲染问题解决方案

    方案一:layui下拉框分页插件 https://fly.layui.com/jie/29002/ 此插件我用了下浏览器缓存有问题,而且当下拉框数据量过万后,会一直渲染不出来,期待后期作者优化 如图下 ...

  9. LED Decorative Light Manufacturer - Decorative Lighting: Functionality And Aesthetics

    Whether it is for general ambient lighting, task lighting or accent lighting, the decorative lightin ...

  10. EAC3 mantissa quantization(VQ & GAQ)

    EAC3基于hebap来决定mantissa的quantizer. hebap如下: mantissa 使用VQ(vector quantization) 和GAQ(gain adaptive qua ...