【狼】unity 鼠标拖拽物体实现任意角度自旋转
主要涉及函数
Input.GetAxis(“Mouse x”) 可取得鼠标横向(x轴)移动增量
Input.GetAxis(“Mouse y”) 可取得鼠标竖向(y轴)移动增量
通过勾股定理获取拖拽长度,长度越长旋转越快
在project setting--Input 可以设置
直接上代码,看了就明白了
using UnityEngine;
using System.Collections; public class startRoate : MonoBehaviour
{
private bool onDrag = false; //是否被拖拽//
public float speed = 6f; //旋转速度//
private float tempSpeed; //阻尼速度//
private float axisX = ;
//鼠标沿水平方向移动的增量//
private float axisY = ; //鼠标沿竖直方向移动的增量//
private float cXY;
void OnMouseDown()
{
//接受鼠标按下的事件// axisX = 0f; axisY = 0f;
}
void OnMouseDrag() //鼠标拖拽时的操作//
{ onDrag = true;
axisX = -Input.GetAxis("moveX");
//获得鼠标增量//
axisY = Input.GetAxis("moveY");
cXY = Mathf.Sqrt(axisX * axisX + axisY * axisY); //计算鼠标移动的长度//
if (cXY == 0f) { cXY = 1f; } }
float Rigid() //计算阻尼速度//
{
if (onDrag)
{
tempSpeed = speed;
}
else
{
if (tempSpeed > )
{
tempSpeed -= speed * * Time.deltaTime / cXY; //通过除以鼠标移动长度实现拖拽越长速度减缓越慢//
}
else {
tempSpeed = ;
}
}
return tempSpeed;
} void Update()
{
// this.transform.Rotate(new Vector3(axisY, axisX, 0) * Rigid(), Space.World); //这个是是按照之前方向一直慢速旋转
if (!Input.GetMouseButton())
{
onDrag = false;
this.transform.Rotate(new Vector3(axisY, axisX, )*0.5f, Space.World);
}
}
}
【狼】unity 鼠标拖拽物体实现任意角度自旋转的更多相关文章
- TriggerPrefab 拖拽物体
模拟经营类游戏 有一个特点,就是 拖拽物体.常见的有<帝国><红警><部落战争><凯撒大帝>等等 2d 拖拽 大部分都是 用 OnDrag 方法来 拖动 ...
- Java3D读取3DMax模型并实现鼠标拖拽、旋转、滚轮缩放等功能
/**-------------------------------------------------代码区--------------------------------------------- ...
- CSharpGL(20)用unProject和Project实现鼠标拖拽图元
CSharpGL(20)用unProject和Project实现鼠标拖拽图元 效果图 例如,你可以把Big Dipper这个模型拽成下面这个样子. 配合旋转,还可以继续拖拽成这样. 当然,能拖拽的不只 ...
- JavaScript鼠标拖拽特效及相关问题总结
#div1{width:200px;height:200px;background:red;position:absolute;} #div2{width:200px;height:200px;bac ...
- 一款基于jQuery的支持鼠标拖拽滑动焦点图
记得之前我们分享过一款jQuery全屏广告图片焦点图,图片切换效果还不错.今天我们要分享另外一款jQuery焦点图插件,它的特点是支持鼠标拖拽滑动,所以在移动设备上使用更加方便,你只要用手指滑动屏幕即 ...
- NGUI对象跟随鼠标拖拽移动
public Camera WNGUICamera; Vector3 _WoldPosition;//指针的初始位置 // Vector3 _WoldAng; Vector3 WscreenSpace ...
- 鼠标拖拽定位和DOM各种尺寸详解
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Arcgis for qml - 鼠标拖拽移动
以实现鼠标拖拽文本图层为例 GitHub:ArcGIS拖拽文本 作者:狐狸家的鱼 目的是利用鼠标进行拖拽. 实现两种模式,一种是屏幕上的拖拽,第二种是地图上图层的挪动. 屏幕上的拖拽其实跟ArcGIS ...
- html5的鼠标拖拽
鼠标拖拽 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...
随机推荐
- ACCESS表与CSV文件相互导入、导出的SQL语句
一.将ACCESS表导出为CSV文件:Select * INTO [TEXT;FMT=CSV;DELIMITED;HDR=YES;DATABASE=E:\temp\].test.csv FROM Sh ...
- (转)C# NameValueCollection集合
1.NameValueCollection类集合是基于 NameObjectCollectionBase 类. 但与 NameObjectCollectionBase 不同,该类在一个键下存储多个字符 ...
- ios应用,今年最蛋疼的6月,IPV6!!
刚刚苹果大会结束,你是不是后悔没去听他的发布会,!!有钱么你? iPV6 国人蒙蔽了,介是什么鬼,经过两三次的残忍拒绝,我认真去研究了iPV6, 2.2 Details We discovered ...
- oracle sql语句
一.ORACLE的启动和关闭1.在单机环境下要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下su - oracle a.启动ORACLE系统oracle>svrmgrlSVRM ...
- asp.net 输出 页面内容 在服务器上
.定义页面内容 按 Ctrl+C 复制代码 <asp:Content ID="BodyContent" runat="server" ContentPla ...
- JavaScript 删除数组重复元素
unique :function (array){ var n = {}, r = [], len = array.length, val, type; for (var i = 0; i < ...
- JavaScript 标准对象
在JavaScript的世界里,一切都是对象. 但是某些对象还是和其他对象不太一样.为了区分对象的类型,我们用typeof操作符获取对象的类型,它总是返回一个字符串: typeof 123; // ' ...
- 《深入.NET平台和C#编程》内部测试题-笔试试卷
1.以下关于序列化和反序列化的描述错误的是( C). a.序列化是将对象的状态存储到特定存储介质中的过程 b.二进制格式化器的Serialize()和Deserialize()方法可以用来实现序列化和 ...
- GridView获取单个单元格的值
0.GridView中的所有数据都存储在Rows集合中,可以通过Rows的Cell属性获取单个单元格的值:如果某个单元格包含其他控件,则通过使用单元格的 Controls 集合,从单元格检索控件:如果 ...
- css3多行省略号
-webkit-line-clamp 概述: -webkit-line-clamp 是一个 不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中. ...