Unity鼠标自由查看3D物体之直接旋转物体
来源:互联网 发布:microsoftoutlook mac 编辑:程序博客网 时间:2024/05/22 06:24
需要将要查看的物体通过两层包装。
第一层为Tile,作为垂直方向旋转
第二层为Spin,作为水平旋转。
也就是Tile下面有一个子物体叫Spin,Spin下面再放要自由查看的3D物体。
然后给Tile和Spin都加下面的这段代码,注意里面有一个属性是IsTile,如果放在Tile上面这个就需要勾选。
using UnityEngine;using System.Collections;public class SpinObject : MonoBehaviour {public float RotationSpeed = 50;private float resultX = 0;private float resultY = 0;public bool isTile=true;public float tileMinAngle = 0f; //垂直方向的旋转限制public float tileMaxAngle = 90; <span style="font-family: Arial, Helvetica, sans-serif;">//垂直方向的旋转限制</span>private Vector3 mousePostion;void Start(){if ( !(Application.platform == RuntimePlatform.Android || Application.platform == RuntimePlatform.IPhonePlayer)) {RotationSpeed*=10;}}void Update() { if (Input.GetMouseButton(0)) { Vector3 currentMousePos = Input.mousePosition;float deltaX = Input.GetAxis("Mouse X");float deltaY = Input.GetAxis("Mouse Y");if (Input.touchCount > 0){deltaX = Input.touches[0].deltaPosition.x;deltaY = Input.touches[0].deltaPosition.y;}resultX = -deltaX*RotationSpeed*Time.deltaTime;resultY = deltaY*RotationSpeed*Time.deltaTime;} if(!isTile){if(resultX!=0){resultX = Mathf.Lerp(resultX,0,0.25f);if(Mathf.Abs(resultX)>0.01f){transform.Rotate(Vector3.up*resultX);}}}else{if(resultY!=0){resultY = Mathf.Lerp(resultY,0,0.25f);if(Mathf.Abs(resultY)>0.01f){float rotaX = (transform.right*resultY).x+transform.localEulerAngles.x;rotaX = ClampAngle(rotaX,tileMinAngle,tileMaxAngle);transform.localRotation = Quaternion.Euler(rotaX,transform.localEulerAngles.y,0);}}}} static float ClampAngle (float angle ,float min ,float max ) {if (angle < -360)angle += 360;if (angle > 360)angle -= 360;return Mathf.Clamp (angle, min, max);}}
0 0
- Unity鼠标自由查看3D物体之直接旋转物体
- Unity鼠标自由查看3D物体之控制摄相机Camera
- unity 3d 鼠标旋转物体脚本
- Unity 3D鼠标操作实现旋转、缩放观察物体
- 跟踪球 鼠标旋转3D物体
- Unity 拖动鼠标物体旋转
- Unity 实现鼠标拖动3D物体
- unity 3d中简单巧妙的实现拖动鼠标旋转物体
- 【Unity 3D学习】获取鼠标滑动方向(上下左右)-控制摄像机围绕物体旋转
- unity--3D物体的上下左右移动,鼠标控制大小,旋转
- unity 鼠标控制摄像机围绕物体旋转
- unity中根据鼠标移动旋转物体
- Unity如何限制3D物体的旋转角度
- unity3D 旋转3D物体
- unity之RotateAround 一个物体围绕另外一个物体旋转
- OpenGL鼠标旋转物体
- 鼠标旋转物体脚本
- Unity中实现鼠标拖动旋转物体和鼠标点击旋转物体
- 新锐互动-英国上市公司,员工欠薪2年,CEO千万买楼?
- 代码流程分析二:Settings-蓝牙分析-点击配对连接设备原理分析
- 桥接模式
- Android 4.4 Watchdog机制
- python中 import gevent报错:libevent version mismatch
- Unity鼠标自由查看3D物体之直接旋转物体
- 重点和三本谈理想、大城市和小城市谈中国梦
- var_dump() 函数调试显示(输出深度,字符串字数)设置
- POJ 2478 Farey Sequence(欧拉函数)
- java-captcha实现验证码(二)
- oracle数据库解决查询值为null的情况
- Libvirt错误总结
- 初步了解OPENWRT
- StrangeIoc框架的详细介绍