Unity 鼠标旋转物体360展示
PC端
using UnityEngine;
using System.Collections; public class DragRound : MonoBehaviour { public Transform obj;
public float speed = ; private bool _mouseDown = false; void Update ()
{
if (Input.GetMouseButtonDown())
_mouseDown = true;
else if (Input.GetMouseButtonUp())
_mouseDown = false; if (_mouseDown)
{
float fMouseX = Input.GetAxis("Mouse X");
float fMouseY = Input.GetAxis("Mouse Y");
obj.Rotate(Vector3.up, -fMouseX * speed, Space.World);
obj.Rotate(Vector3.right, fMouseY * speed, Space.World);
}
}
}
移动端:
using UnityEngine;
using System.Collections; public class DragRoundPhone : MonoBehaviour { private Vector3 startFingerPos;
private Vector3 nowFingerPos;
private float xMoveDistance;
private float yMoveDistance;
private int backValue = ;
public GameObject obj;
void Update()
{
if (Input.touchCount <= )
{
return;
} if (Input.GetTouch().phase == TouchPhase.Began)
{
//Debug.Log("======开始触摸=====");
startFingerPos = Input.GetTouch().position;
} nowFingerPos = Input.GetTouch().position; if ((Input.GetTouch().phase == TouchPhase.Stationary) || (Input.GetTouch().phase == TouchPhase.Ended))
{
startFingerPos = nowFingerPos;
//Debug.Log("======释放触摸=====");
return;
}
// if (Input.GetTouch(0).phase == TouchPhase.Ended) {
//
// }
if (startFingerPos == nowFingerPos)
{
return;
}
xMoveDistance = Mathf.Abs(nowFingerPos.x - startFingerPos.x);
yMoveDistance = Mathf.Abs(nowFingerPos.y - startFingerPos.y); if (xMoveDistance > yMoveDistance)
{
if (nowFingerPos.x - startFingerPos.x > )
{
//Debug.Log("=======沿着X轴负方向移动=====");
backValue = -; //沿着X轴负方向移动
}
else
{
//Debug.Log("=======沿着X轴正方向移动=====");
backValue = ; //沿着X轴正方向移动
}
}
else
{
if (nowFingerPos.y - startFingerPos.y > )
{
//Debug.Log("=======沿着Y轴正方向移动=====");
backValue = ; //沿着Y轴正方向移动
}
else
{
//Debug.Log("=======沿着Y轴负方向移动=====");
backValue = -; //沿着Y轴负方向移动
} }
if (backValue == -)
{
obj.transform.Rotate(Vector3.up * - * Time.deltaTime * , Space.World);
}
else if (backValue == )
{
obj.transform.Rotate(Vector3.up * Time.deltaTime * , Space.World);
}
else if (backValue == )
{
obj.transform.Rotate(Vector3.right * Time.deltaTime * , Space.World);
}
else if (backValue == -)
{
obj.transform.Rotate(Vector3.right * - * Time.deltaTime * , Space.World);
} }
}
Unity 鼠标旋转物体360展示的更多相关文章
- unity鼠标拖动物体旋转
using System.Collections; using System.Collections.Generic; using UnityEngine; /// <summary> / ...
- 【three.js第三课】鼠标事件,移动、旋转物体
1.下载three.js的源码包后,文件夹结构如下: 2.在[three.js第一课]的代码基础上,引入OrbitControls.js文件,此文件主要用于 对鼠标的操作. 该文件位置:在文件结构中 ...
- 关于Unity中鼠标选取物体的解决方案
今天修改了之前写的飞机大战的代码,原来的不足之处是点击屏幕的任意一点都可以移动飞机,也就是没有检测鼠标到底有没有点到飞机上. 我先是用之前的3D拾取技术,发现没有反应,才意识到我这个plane飞机节点 ...
- unity的旋转
绕着一个点旋转 : transform.RotateAround(Vector3.zero, Vector3.up, speed* Time.deltaTime ); 第一个参数,点的位置.第二个参数 ...
- 通过CSS3实现:鼠标悬停图片360度旋转效果
效果很好玩,代码很简单: 效果: 鼠标放置在图片上:360度顺时针旋转 鼠标离开图片:图片260度逆时针旋转 只要将下面代码拷贝过去,并将图片改成你想要的就可以看到效果 <!doctype ht ...
- Unity 3d 实现物体跟随摄像机视野运动
https://blog.csdn.net/qq_31411825/article/details/61623857 Unity 3d 实现物体跟随摄像机视野运动Created by miccall ...
- Unity 鼠标控制视角功能和动画播放冲突解决办法
环境是 unity 5.6.4 情况说明: 1 模型动画单独播放是没问题的. 2 鼠标控制模型是没问题的. 3 在start中播放模型动画,即使鼠标控制视角代码还挂载着,但是模型却无法用鼠标旋转等操作 ...
- 鼠标划过用户名时在鼠标右下角显示div展示用户资料
最近做一个网站论坛,为了方便会员之间相互了解,又不想再做一个页面展示用户资料,就想到了鼠标划过用户名时在鼠标右下角显示div展示用户资料这个效果, 这里要注意的该方法不是给每个用户名的旁边都绑定一个d ...
- canvas实现跟随鼠标旋转的箭头
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta ht ...
随机推荐
- console.log对象全部展开
挖掘Chrome Console的小秘密 SP_lyu关注 2018.09.15 18:25:32字数 1,697阅读 917 控制台应该是大多数前端开发人员日常开发调试离不开的神器.然而控制台仍有很 ...
- 快速ni
代码: while(p>0) (mul(a,b)) = a*b; { 等同于二分 if(p%2==1) mul(ans,a); 目的是为了二分个基数的二次方乘 ...
- C分支语句的工程用法
if语言中零值比较的注意点: -bool型变量应该直接出现于条件中,不要进行比较 -变量和零值比较时,零值应该出现在比较符号左边 -float型变量不能直接进行零值比较,需要定义精度 bool b = ...
- C#的HttpModule中及Java的Servlet中成员变量乱用导致的不易重现的BUG
3年前写的在HttpModule中记录访问日志的代码,在最近使用日志数据分析登录账号的IP情况时,才发现了一个不易重现的BUG——日志中记录的登录账号出现串掉的情况.之所以这个时候才发现该问题,是因为 ...
- 0121 spring-boot-redis的使用
redis是什么呢?redis,属于NoSQL的一种,在互联网时代,起到加速系统的作用. redis是一种内存数据库,支持7种数据类型的存储,性能1S 10w次读写: redis提供的简单的事务保证了 ...
- 面试题:HashSet、TreeSet 和HashMap 的实现与原理
说下 TreeSet 和 HashSet 什么区别呢? 它们的区别点主要在他们的底层数据结构不同,HashSet 使用的是 HashMap 来实现,而 TreeSet 使用的是 TreeMap 来实现 ...
- js splice()
//arrayObject.splice(index,howmany,item1,.....,itemX) 语法 //测试代码let array;array = ['George','John','T ...
- python skimage库的安装
skimage库需要依赖 numpy+mkl 和scipy 1.打开运行,输入cmd回车,输入python回车,查看python版本
- JS中使用lambda筛选list
LevelEnum.filter(x=>x.Category=="水利工程")
- rancher布控集群启动失败
rancher布控集群启动失败 待办 报告缺少某个文件.多线程启动任务部署的时候某些线程跑在前边了, 导致问题出现 解决思路:等待,等待响应的job重启就ok了,都是一些job在跑,失败了会重新开始的 ...