【Unity3D自学记录】实现地球仪般拖拽旋转的效果
01
|
using UnityEngine;
|
02
|
using System.Collections;
|
03
|
04
|
public class NewBehaviourScript : MonoBehaviour {
|
05
|
06
|
private bool onDrag = false ; //是否被拖拽
|
07
|
public float speed = 3f; //旋转速度
|
08
|
private float tempSpeed; //阻尼速度
|
09
|
private float axisX; //鼠标沿水平方向移动的增量
|
10
|
private float axisY; //鼠标沿垂直方向移动的增量
|
11
|
private float cXY; //鼠标移动的距离
|
12
|
13
|
14
|
/// <summary>
|
15
|
/// 接收鼠标按下的事件
|
16
|
/// </summary>
|
17
|
public void OnMouseDown()
|
18
|
{
|
19
|
axisX = 0f; //为移动的增量赋初值
|
20
|
axisY = 0f;
|
21
|
}
|
22
|
23
|
/// <summary>
|
24
|
/// 鼠标拖拽时的操作
|
25
|
/// </summary>
|
26
|
public void OnMouseDrag()
|
27
|
{
|
28
|
onDrag = true ; //被拖拽
|
29
|
axisX = -Input.GetAxis( "Mouse X" ); //获得鼠标增量
|
30
|
axisY = Input.GetAxis( "Mouse Y" );
|
31
|
cXY = Mathf.Sqrt(axisX * axisX + axisY * axisY); //计算鼠标移动的长度
|
32
|
if (cXY == 0f)
|
33
|
{
|
34
|
cXY = 1f;
|
35
|
}
|
36
|
}
|
37
|
38
|
/// <summary>
|
39
|
/// 计算阻尼速度
|
40
|
/// </summary>
|
41
|
/// <returns>阻尼的值</returns>
|
42
|
public float Rigid()
|
43
|
{
|
44
|
if (onDrag)
|
45
|
{
|
46
|
tempSpeed = speed;
|
47
|
}
|
48
|
else
|
49
|
{
|
50
|
if (tempSpeed > 0)
|
51
|
{
|
52
|
tempSpeed -= speed * 2 * Time.deltaTime / cXY; //通过除以鼠标移动长度实现拖拽越长速度减缓越慢
|
53
|
}
|
54
|
else
|
55
|
{
|
56
|
tempSpeed = 0;
|
57
|
}
|
58
|
}
|
59
|
return tempSpeed; //返回阻尼的值
|
60
|
}
|
61
|
62
|
/// <summary>
|
63
|
///
|
64
|
/// </summary>
|
65
|
public void Update()
|
66
|
{
|
67
|
gameObject.transform.Rotate( new Vector3(0, axisX, 0) * Rigid(), Space.World);
|
68
|
if (!Input.GetMouseButton(0))
|
69
|
{
|
70
|
onDrag = false ;
|
71
|
}
|
72
|
}
|
73
|
}
|
【Unity3D自学记录】实现地球仪般拖拽旋转的效果相关推荐
- vue可视化拖拽组件模板_基于 Vue 丝滑般拖拽排序组件VueSlicksort
今天给大家分享一个功能超强的自由拖拽排序组件VueSlicksort. vue-slicksort 一款功能强大的可拖拽的vue.js组件.拥有丝滑般拖拽动画效果,支持水平/垂直/网格拖拽排序.还可以 ...
- Unity3D实现 UI图片拖拽旋转和拖拽移动
拖拽UI旋转 using UnityEngine; using System.Collections; using UnityEngine.EventSystems; public class Rot ...
- Android仿探探卡片拖拽,Vue 仿探探拖拽卡片的效果
原标题:Vue 仿探探拖拽卡片的效果 已更新Vue3版,请给前端大全发送关键字vue3仿探探获取Vue3版 类似 Tinder 和 探探 的卡片效果的组件,社区中已经非常多了.我这一版除了可以实现和他 ...
- vuedraggable嵌套块拖拽_Vue 基于 vuedraggable 实现选中、拖拽、排序效果
今天有个朋友说要做个效果:Vue实现拖拽排序,要有 checked,输出结果是排序后的,要全选,未选中的不能拖动. 其实我之前基于 Sortable 做过一个类似的效果.也给他看过了,没看太明白,他就 ...
- Unity UGUI基础 之 Scroll View/Scroll Rect 的简单使用,并取消拖拽(滑动内容)效果,拖拽只在Scrollbar 上起作用
Unity UGUI基础 之 Scroll View/Scroll Rect 的简单使用,并取消拖拽(滑动内容)效果,拖拽只在Scrollbar 上起作用 目录 Unity UGUI基础 之 Scro ...
- Android仿QQ消息拖拽黏连消失效果,气泡爆炸效果
公司需要这个效果,看了很多博客,根据自己项目的需要写出来的一个完整的过程. 拖拽控件代码 根据手势拖动的位置利用贝塞尔曲线算法画出控件 package cn.stike.bubble.stickbub ...
- 用js仿探探拖拽卡片的效果、飞卡片的效果,感觉挺酷,最后有美女看哦!程序员就是可以为所欲为!
目录 前两天在网上看到一个用vue写飞卡片的,觉得很有意思,我就自己想写一个,就花了点时间搞了一下,做的不好望大家多多指教. 两个主要的功能: 先看看效果: 首先要做一个盒子,然后生成几张卡片放到这个 ...
- 2020更新,Vue模仿探探拖拽卡片的效果
类似Tinder和探探的卡片效果的组件,社区中已经非常多了.我这一版除了可以实现和他们一样的效果外.还增加了飞卡的效果,就是类似我的女神邱淑贞这样. 可以将卡片朝任意拖拽方向飞出去,必须得帅是不是! ...
- hammer实现拖拽旋转缩放功能
效果: 首先下载hammer插件http://hammerjs.github.io/ html部分: <script type="text/javascript" src=& ...
最新文章
- 谷歌无人车之父刚推出的“无人驾驶入门”课,到底能学到啥?
- [Oracle] 中的Temporary tablespace的作用
- 使用python的eval()函数循环调用某些模块中的一些方法和属性
- 《Spring设计思想》AOP设计思想与原理(图文并茂)
- matlab打开笔记本摄像头_matlab窗口调用摄像头
- TensorFlow 全网最全学习资料汇总之TensorFlow的技术应用
- ArrayList的使用
- Hadoop集群(第10期副刊)_常用MySQL数据库命令
- python的作用域分别有几种_python 作用域知识点整理
- 水表模型更新--170323
- Linux如何动态查看文件信息,怎么查看linux动态链接库文件的版本等其他信息
- signature=32c56289e10e63e51063305adfc34ef0,Deconfinement transition and Black Holes
- 计算机组成原理pdf在线阅读,计算机组成原理计算机组成原理.pdf
- fpga c语言教程,FPGA实践教程(一)用HLS将c程序生成IPcore
- 【3分钟带你学】Ajax
- 设计模式七大原则——单一职责原则
- java实现阿里云短信验证
- 11月29日做题截图
- 精准识别,指静脉智能门锁更好用吗?看先锋亲自体验的结果
- 【Python Intelhex- HEX文件修改器工具】
热门文章
- ubuntu16.04安装phpMyAdmin
- python绘制条形统计图_python 绘制百度实时统计柱状图
- 干电池升压IC,电流大,常用,功耗低
- 算法:动态规划(二)
- 《Linux 工作站安全检查清单》——来自 Linux 基金会内部
- 计算机主机红灯不闪硬盘工作,电脑硬盘指示灯不亮怎么办?如何解决电脑硬盘灯不亮问题...
- 经典好用的软件,不容错过,建议收藏
- 【ALGO】100盏灯问题
- 七牛云使用客户端上传图片出现no-referrer-when-downgrade的问题以及头像未更新问题...
- 物联网的边缘计算应用在智慧城市中