找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 1304|回复: 4

[Unity3D] unity ios开发--FingerGestures插件使用

[复制链接]

该用户从未签到

3

主题

3

帖子

3

积分

LV.1

Rank: 1

积分
3
QQ
发表于 2019-7-6 12:16:46 | 显示全部楼层 |阅读模式
ARial">Unity中的一个手势操作的插件FingerGestures。它能很方便监听到Unity中的各种手势事件:上下左右四方向的滑动事件、按下事件、抬起事件、移动事件、连击事件、长按事件等等。它同时支持触摸屏操作与鼠标操作,总起来说使用起来还是比较方便的。

[csharp] view plain copy


  • using UnityEngine;  
  • using System.Collections;  
  •   
  • public class FingerEvent1 : MonoBehaviour  
  • {  
  •   
  •     void OnEnable()  
  •     {  
  •         //启动时调用,这里开始注册手势操作的事件。  
  •   
  •         //按下事件: OnFingerDown就是按下事件监听的方法,这个名子可以由你来自定义。方法只能在本类中监听。下面所有的事件都一样!!!  
  •         FingerGestures.OnFingerDown += OnFingerDown;  
  •         //抬起事件  
  •         FingerGestures.OnFingerUp += OnFingerUp;  
  •         //开始拖动事件  
  •         FingerGestures.OnFingerDragBegin += OnFingerDragBegin;  
  •         //拖动中事件...  
  •         FingerGestures.OnFingerDragMove += OnFingerDragMove;  
  •         //拖动结束事件  
  •         FingerGestures.OnFingerDragEnd += OnFingerDragEnd;  
  •         //上、下、左、右、四个方向的手势滑动  
  •         FingerGestures.OnFingerSwipe += OnFingerSwipe;  
  •         //连击事件 连续点击事件  
  •         FingerGestures.OnFingerTap += OnFingerTap;  
  •         //手指触摸屏幕中事件调用一下三个方法  
  •         FingerGestures.OnFingerStationaryBegin += OnFingerStationaryBegin;  
  •         FingerGestures.OnFingerStationary += OnFingerStationary;  
  •         FingerGestures.OnFingerStationaryEnd += OnFingerStationaryEnd;  
  •         //长按事件  
  •         FingerGestures.OnFingerLongPress += OnFingerLongPress;  
  •   
  •     }  
  •   
  •     void OnDisable()  
  •     {  
  •         //关闭时调用,这里销毁手势操作的事件  
  •         //和上面一样  
  •         FingerGestures.OnFingerDown -= OnFingerDown;  
  •         FingerGestures.OnFingerUp -= OnFingerUp;  
  •         FingerGestures.OnFingerDragBegin -= OnFingerDragBegin;  
  •         FingerGestures.OnFingerDragMove -= OnFingerDragMove;  
  •         FingerGestures.OnFingerDragEnd -= OnFingerDragEnd;  
  •         FingerGestures.OnFingerSwipe -= OnFingerSwipe;  
  •         FingerGestures.OnFingerTap -= OnFingerTap;  
  •         FingerGestures.OnFingerStationaryBegin -= OnFingerStationaryBegin;  
  •         FingerGestures.OnFingerStationary -= OnFingerStationary;  
  •         FingerGestures.OnFingerStationaryEnd -= OnFingerStationaryEnd;  
  •         FingerGestures.OnFingerLongPress -= OnFingerLongPress;  
  •     }  
  •   
  •     //按下时调用  
  •     void OnFingerDown(int fingerIndex, Vector2 fingerPos)  
  •     {  
  •         //int fingerIndex 是手指的ID 第一按下的手指就是 0 第二个按下的手指就是1。。。一次类推。  
  •         //Vector2 fingerPos 手指按下屏幕中的2D坐标  
  •   
  •         //将2D坐标转换成3D坐标  
  •         transform.position = GetWorldPos(fingerPos);  
  •         Debug.Log(" OnFingerDown =" + fingerPos);  
  •     }  
  •   
  •     //抬起时调用  
  •     void OnFingerUp(int fingerIndex, Vector2 fingerPos, float timeHeldDown)  
  •     {  
  •   
  •         Debug.Log(" OnFingerUp =" + fingerPos);  
  •     }  
  •   
  •     //开始滑动  
  •     void OnFingerDragBegin(int fingerIndex, Vector2 fingerPos, Vector2 startPos)  
  •     {  
  •         Debug.Log("OnFingerDragBegin fingerIndex =" + fingerIndex + " fingerPos =" + fingerPos + "startPos =" + startPos);  
  •     }  
  •     //滑动结束  
  •     void OnFingerDragEnd(int fingerIndex, Vector2 fingerPos)  
  •     {  
  •   
  •         Debug.Log("OnFingerDragEnd fingerIndex =" + fingerIndex + " fingerPos =" + fingerPos);  
  •     }  
  •     //滑动中  
  •     void OnFingerDragMove(int fingerIndex, Vector2 fingerPos, Vector2 delta)  
  •     {  
  •         transform.position = GetWorldPos(fingerPos);  
  •         Debug.Log(" OnFingerDragMove =" + fingerPos);  
  •   
  •     }  
  •     //上下左右四方方向滑动手势操作  
  •     void OnFingerSwipe(int fingerIndex, Vector2 startPos, FingerGestures.SwipeDirection direction, float velocity)  
  •     {  
  •         //结果是 Up Down Left Right 四个方向  
  •         Debug.Log("OnFingerSwipe " + direction + " with finger " + fingerIndex);  
  •   
  •     }  
  •   
  •     //连续按下事件, tapCount就是当前连续按下几次  
  •     void OnFingerTap(int fingerIndex, Vector2 fingerPos, int tapCount)  
  •     {  
  •   
  •         Debug.Log("OnFingerTap " + tapCount + " times with finger " + fingerIndex);  
  •   
  •     }  
  •   
  •     //按下事件开始后调用,包括 开始 结束 持续中状态只到下次事件开始!  
  •     // OnFingerStationary 事件和  OnFingerDragMove 有一个区别。  
  •     //OnFingerStationary 是手指触摸在屏幕中的事件,而OnFingerDragMove是先触摸一下然后滑动的事件。  
  •     //如果你需要时时捕获手指触摸屏幕中的事件时 用OnFingerStationary 即可  
  •     void OnFingerStationaryBegin(int fingerIndex, Vector2 fingerPos)  
  •     {  
  •   
  •         Debug.Log("OnFingerStationaryBegin " + fingerPos + " times with finger " + fingerIndex);  
  •     }  
  •   
  •     void OnFingerStationary(int fingerIndex, Vector2 fingerPos, float elapsedTime)  
  •     {  
  •   
  •         Debug.Log("OnFingerStationary " + fingerPos + " times with finger " + fingerIndex);  
  •   
  •     }  
  •   
  •     void OnFingerStationaryEnd(int fingerIndex, Vector2 fingerPos, float elapsedTime)  
  •     {  
  •   
  •         Debug.Log("OnFingerStationaryEnd " + fingerPos + " times with finger " + fingerIndex);  
  •     }  
  •   
  •     //长按事件  
  •     void OnFingerLongPress(int fingerIndex, Vector2 fingerPos)  
  •     {  
  •   
  •         Debug.Log("OnFingerLongPress " + fingerPos);  
  •     }  
  •   
  •     //把Unity屏幕坐标换算成3D坐标  
  •     Vector3 GetWorldPos(Vector2 screenPos)  
  •     {  
  •         Camera mainCamera = Camera.main;  
  •         return mainCamera.ScreenToWorldPoint(new Vector3(screenPos.x, screenPos.y, Mathf.Abs(transform.position.z - mainCamera.transform.position.z)));  
  •     }  
  • }  

unity ios开发--FingerGestures插件使用 Unity3D教程 第1张

unity ios开发--FingerGestures插件使用 Unity3D教程 第1张

unity ios开发--FingerGestures插件使用 Unity3D教程 第1张

unity ios开发--FingerGestures插件使用 Unity3D教程 第1张

这样把上面的代码付给cube,运行就可以了。

该用户从未签到

1

主题

60

帖子

56

积分

LV.2

Rank: 2

积分
56
发表于 2019-8-2 14:08:04 | 显示全部楼层
增强现实希望发展越来越好
  • TA的每日心情
    擦汗
    2016-7-12 13:56
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    3

    主题

    11

    帖子

    79

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    79
    发表于 2019-8-2 21:37:10 | 显示全部楼层
    楼主写的很不错,关于AR的知识受教了

    该用户从未签到

    6

    主题

    72

    帖子

    68

    积分

    LV.2

    Rank: 2

    积分
    68
    QQ
    发表于 2019-11-28 14:15:11 | 显示全部楼层
    竟然还有零回复,给我消失

    该用户从未签到

    1

    主题

    11

    帖子

    6

    积分

    LV.1

    Rank: 1

    积分
    6
    QQ
    发表于 2020-3-27 02:44:50 | 显示全部楼层
    想了解下AR增强现实的相关内容来看看
    您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    快速回复 返回顶部 返回列表