【狼】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- ...
随机推荐
- [XML] C#XMLProcess操作Xml文档的帮助类 (转载)
点击下载 XMLProcess.rar 主要功能如下所示 看下面代码吧 /// <summary> /// 类说明:XMLProcess /// 编 码 人:苏飞 /// 联系方式:361 ...
- C#基础加强
1.代码规范 -命名规范:定义的变量或者方法名要有意义. 1.骆驼命名 :第一个单词首字母小写,之后的单词首字母大写 userName.userPassword.realName…(普通变量(局部变量 ...
- android - android Couldn't load runtimecore_java from loader
在写Arcgis Android 或百度Android的时候,有时会报诸如,java.lang.UnsatisfiedLinkError:android Couldn't load runtimeco ...
- SQL语句一之建库
USE master --转到系统表goIF EXISTS(SELECT * FROM sysdatabases WHERE name ='Test') --查询是否存在Test数据库DROP DA ...
- Flex:CSS3布局利器
实习以来做了三个小控件,都是用的CSS2.1里传统的DIV+CSS布局方式,综合使用position.margin.float.BFC等属性或特性将元素放到指定的位置上.然而面对日益复杂的界面,这些来 ...
- Input的readonly 属性与disabled属性
readonly 不可编辑,可以获得焦点,背景颜色默认灰色,值的字体颜色默认为灰色,值可以在请求中传递 disabled 不可编辑,不可以获得焦点,背景颜色默认灰色,值的字体颜色默认为灰色,值不可以在 ...
- php 删除语句
if($query&&mysql_affected_rows())echo('数据已被删除');else echo('错误,无法删除'); 通过返回影响的行数 来判断是否已经删除
- Android 安全概述
1. 保密: 信息.文档加密.解密 2. 鉴别.认证:就像确认与我们打电话的确实是XXX,而不是骗子 3. 完整性:信息不能被篡改, 4. 不可否认性:确定信息有who产生,并且将来不能否认
- Android中通过typeface设置字体
Android系统默认支持三种字体,分别为:“sans”, “serif”, “monospace",除此之外还可以使用其他字体文件(*.ttf)方法一:XML中使用android默认字体 ...
- Python快速排序
快排,取一个key值,一般取第一个即可,将小于key的放到左边,大于key的放到右边,递归实现 import random def quicksort(data, low = 0, high = No ...