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自学记录】实现地球仪般拖拽旋转的效果相关推荐

  1. vue可视化拖拽组件模板_基于 Vue 丝滑般拖拽排序组件VueSlicksort

    今天给大家分享一个功能超强的自由拖拽排序组件VueSlicksort. vue-slicksort 一款功能强大的可拖拽的vue.js组件.拥有丝滑般拖拽动画效果,支持水平/垂直/网格拖拽排序.还可以 ...

  2. Unity3D实现 UI图片拖拽旋转和拖拽移动

    拖拽UI旋转 using UnityEngine; using System.Collections; using UnityEngine.EventSystems; public class Rot ...

  3. Android仿探探卡片拖拽,Vue 仿探探拖拽卡片的效果

    原标题:Vue 仿探探拖拽卡片的效果 已更新Vue3版,请给前端大全发送关键字vue3仿探探获取Vue3版 类似 Tinder 和 探探 的卡片效果的组件,社区中已经非常多了.我这一版除了可以实现和他 ...

  4. vuedraggable嵌套块拖拽_Vue 基于 vuedraggable 实现选中、拖拽、排序效果

    今天有个朋友说要做个效果:Vue实现拖拽排序,要有 checked,输出结果是排序后的,要全选,未选中的不能拖动. 其实我之前基于 Sortable 做过一个类似的效果.也给他看过了,没看太明白,他就 ...

  5. Unity UGUI基础 之 Scroll View/Scroll Rect 的简单使用,并取消拖拽(滑动内容)效果,拖拽只在Scrollbar 上起作用

    Unity UGUI基础 之 Scroll View/Scroll Rect 的简单使用,并取消拖拽(滑动内容)效果,拖拽只在Scrollbar 上起作用 目录 Unity UGUI基础 之 Scro ...

  6. Android仿QQ消息拖拽黏连消失效果,气泡爆炸效果

    公司需要这个效果,看了很多博客,根据自己项目的需要写出来的一个完整的过程. 拖拽控件代码 根据手势拖动的位置利用贝塞尔曲线算法画出控件 package cn.stike.bubble.stickbub ...

  7. 用js仿探探拖拽卡片的效果、飞卡片的效果,感觉挺酷,最后有美女看哦!程序员就是可以为所欲为!

    目录 前两天在网上看到一个用vue写飞卡片的,觉得很有意思,我就自己想写一个,就花了点时间搞了一下,做的不好望大家多多指教. 两个主要的功能: 先看看效果: 首先要做一个盒子,然后生成几张卡片放到这个 ...

  8. 2020更新,Vue模仿探探拖拽卡片的效果

    类似Tinder和探探的卡片效果的组件,社区中已经非常多了.我这一版除了可以实现和他们一样的效果外.还增加了飞卡的效果,就是类似我的女神邱淑贞这样. 可以将卡片朝任意拖拽方向飞出去,必须得帅是不是! ...

  9. hammer实现拖拽旋转缩放功能

    效果: 首先下载hammer插件http://hammerjs.github.io/ html部分: <script type="text/javascript" src=& ...

最新文章

  1. Objective-C中的block块语法
  2. SFTP Net Drive
  3. php怎么上传函数,PHP单文件上传原理及上传函数的封装操作示例
  4. iOS判断为空或者只为空格
  5. Observers:让 ZooKeeper更具可伸缩性 | 时光机
  6. mysql union all 别名_mysql union 与 union all 语法及用法
  7. c语言牛顿方法,C语言编写牛顿迭代法的跟踪
  8. OpenCV(iOS)平滑处理(模糊,毛玻璃)(10)
  9. 使用pgd和fgsm方法进行攻击并使用map方法评估
  10. easyUi combobox setValue 引起的关于js的坑
  11. 华师计算机学院在职研究生,2021年华南师范大学在职研究生招生简章
  12. Debian Etch 源配置
  13. [Banner] The number of titles and images is different
  14. Java中的十大组织
  15. win10自带sftp服务器_FreeSSHD在Windows环境下搭建SFTP服务器
  16. java西历转换和历_java西历转换和历
  17. 5.Numpy数组中数据的抽取
  18. QT QColor颜色选择器并获取rgb值
  19. java drawimage图片不完整_微信小程序canvas.drawImage完全显示图片问题的解决
  20. sql重复数据只取一条记录

热门文章

  1. 京东金融大数据竞赛猪脸识别(7)- 识别方法之三
  2. 「Python」学习Day 3. dict记录学生名字和成绩
  3. 运维工程师必会工具:nmap
  4. [翻译] EF Core 概述
  5. TiDB数据库管控平台——TiEM初体验
  6. 快速学习COSMIC方法之十一:如何识别输入?
  7. PHP获取用户真实 IP , 淘宝IP接口获得ip地理位置
  8. PNET LAB 4.2.8 安装配置 最新版本PNET 2021.2.15 update 附下载地址
  9. CC2530入门篇————实现四盏灯全亮
  10. word超链接显示HYPERLINK