FingersGestures 简介

news/2024/10/15 14:07:49

FingersGestures 简介

FingersGestures为官方推荐手势插件,主要用于替代EasyTouch,EasyTouch很多年没有更新了,并且已经在官方资产商店下架,FingersGestures插件在官方商店具有很高的热度和持续的版本迭代,以及提供了二十多个实例进行参考,后续考虑项目中都使用此插件。

#核心模块类介绍:
FingersScript 为手势的核心类,贯穿全局,需要对其进行设置处理
主要的 Unity 手指脚本 - 只有其中一个应该存在。 FingersScript.Instance 让您可以轻松地添加和删除手势

主要参数设置说明:

  • EnableMulitTouch: 是否自动启用 Unity 输入多点触控

  • TeeatMousePointerAsFinger: True 将鼠标视为手指,否则为 false。 鼠标左键、中键和右键可以用作单独的手指,并且都具有相同的位置

  • TreatMouseWheelAsFingers: True 将鼠标滚轮视为两个手指进行旋转和缩放,否则为 false

  • **SimulateMouseWithTouches: ** 是否将触摸视为鼠标指针? 这需要在调用脚本 Awake 方法之前设置

  • ProcessUnityTouches: 是否处理 Unity 触摸事件。 如果为 false,您将需要实现 VirtualTouch* 方法来实现触摸处理

  • RequireControlKeyForMouseZoom: 鼠标缩放是否需要控制键。 如果为真,控制加鼠标滚轮缩放。 如果为 false,鼠标滚轮将单独缩放

  • MouseDistanceInUnitsForScaleAndRotate: 模拟手指开始鼠标缩放或旋转的距离(以单位为单位,默认为英寸)

  • MouseWheelDeltaMultiplier: 鼠标滚轮增量乘数

  • MouseWheelZoomOutSnapBack : 鼠标滚轮回弹选项。 X 是以单位回弹的距离,Y 是以单位回弹的距离

  • PassThroughObjects : 应该通过手势的对象。 默认情况下,某些 UI 组件会阻止手势,例如 Panel、Button、Dropdown 等。有关默认值的完整列表,请参阅 SetupDefaultPassThroughComponents 方法

  • AutoAddRequiredComponents : 是否自动添加所需的组件,如物理光线投射器、事件系统等(如果缺少)

  • ShowTouches : 是否使用 TouchCircles 数组显示触摸。 确保在发布您的游戏或应用程序之前关闭此功能

手势主要API说明:

当前插件提供了多种预制的手势类型,从GestureRecognizer派生进行实现
常用API:
注意手势是全局的,不需要选中,如果想指定目标需要绑定目标或者自行加逻辑判断。

StateUpdated:注册手势的回调事件

tripleTapGesture.StateUpdated += PlatformSpecificViewTapUpdated;

PlatformSpecificView:指定点击的目标

tripleTapGesture.PlatformSpecificView = bottomLabel.gameObject;

NumberOfTapsRequired:Tap手势的连点次数。单击、双击等都是靠这个区分

tripleTapGesture.NumberOfTapsRequired = 3;

AddGesture:注册手势

FingersScript.Instance.AddGesture(tripleTapGesture);

GestureRecognizerState:手势回调中判断当前的执行阶段

if (gesture.State == GestureRecognizerState.Ended)

RequireGestureRecognizerToFail:添加或移除一个需要失败的手势。 设置为 null 可以清除所有需要失败的手势。比如说下面的例子意思为如果doubleTapGesture手势触发了就会导致tapGesture触发失败。其实就是防止手势冲突使用的

tapGesture.RequireGestureRecognizerToFail = doubleTapGesture;

gesture.FocusX, gesture.FocusY:回调中点击的屏幕坐标
DebugText("Double tapped at {0}, {1}", gesture.FocusX, gesture.FocusY);

Direction:设置滑动方向
swipeGesture.Direction = SwipeGestureRecognizerDirection.Down;

DirectionThreshold:对于设置的方向,这是在该方向与另一个方向上必须成比例的滑动量。 例如,与沿 x 轴移动相比,向下滑动手势需要在 y 轴上移动更多倍数。 默认值为 1.5,这意味着向下滑动手势需要在 y 轴与 x 轴上大 1.5 倍。小于或等于 1 表示任何比率都可以接受。简单来说就是这个值越大就需要越贴合目标方向
swipeGesture.DirectionThreshold = directionThreshold;// allow a swipe, regardless of slope

gesture.StartFocusX, gesture.StartFocusY:手势开始的位置
DebugText("Swiped from {0},{1} to {2},{3}; velocity: {4}, {5}", gesture.StartFocusX, gesture.StartFocusY, gesture.FocusX, gesture.FocusY, swipeGesture.VelocityX, swipeGesture.VelocityY);

swipeGesture.VelocityX, swipeGesture.VelocityY:滑动的速度(根据focus)
DebugText("Swiped from {0},{1} to {2},{3}; velocity: {4}, {5}", gesture.StartFocusX, gesture.StartFocusY, gesture.FocusX, gesture.FocusY, swipeGesture.VelocityX, swipeGesture.VelocityY);

MinimumNumberOfTouchesToTrack:设置最少用到的手指数,一般用1或2。要注意不是每个手势都支持多指

panGesture.MinimumNumberOfTouchesToTrack = 2;

MaximumNumberOfTouchesToTrack:设置最大用到的手指数,默认用1或2

longPressGesture.MaximumNumberOfTouchesToTrack = 1;

gesture.DeltaX, gesture.DeltaY:手势位移的距离

DebugText("Panned, Location: {0}, {1}, Delta: {2}, {3}", gesture.FocusX, gesture.FocusY, gesture.DeltaX, gesture.DeltaY);

scaleGesture.ScaleMultiplier:手指距离的缩放值

DebugText("Scaled: {0}, Focus: {1}, {2}", scaleGesture.ScaleMultiplier, scaleGesture.FocusX, scaleGesture.FocusY);

rotateGesture.RotationRadiansDelta:旋转弧度的变化

Earth.transform.Rotate(0.0f, 0.0f, rotateGesture.RotationRadiansDelta * Mathf.Rad2Deg);

AllowSimultaneousExecution:允许多个手势同时操作一个目标

panGesture.AllowSimultaneousExecution(scaleGesture);
panGesture.AllowSimultaneousExecution(rotateGesture);
scaleGesture.AllowSimultaneousExecution(rotateGesture);

CaptureGestureHandler:捕获点击的目标并处理。返回false是可穿透,true为不可穿透,null为默认。

手势类型说明:

TapGestureRecognizer: 单击手势类型
轻击手势检测一个或多个连续轻击。 结束状态表示点击成功。

PanGestureRecognizer: 平移手势类型

平移手势检测触摸的移动。

SwipeGestureRecognizer: 轻扫手势类型

滑动手势是在五个方向之一的快速移动:向左、向右、向下、向上或任何方向。

LongPressGestureRecognizer: 长按手势类型

长按手势检测到点击并按住,然后回调移动,直到

RotateGestureRecognizer: 旋转手势类型

旋转手势使用两次触摸来回调旋转角度,因为两次触摸围绕中心点扭转

ScaleGestureRecognizer: 缩放手势类型

缩放手势检测两个手指彼此靠近或远离移动以缩放某物

插件包:
\192.168.5.10\youkia\项目工作\世界之光-起源\临时目录\前端\Fingers - Touch Gestures for Unity 3.0.8.unitypackage

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/71827.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

TextMeshPro

简介支持图文混排和矢量字体图文混排使用需要开启RichText 需要挂载SpriteAsset(不挂载的情况下,使用默认的spriteAsset) 使用下标来显示没有设置spriteAsset的情况设置了spriteAsset的情况

TowardsDataScience-博客中文翻译-2020-五十五-

TowardsDataScience 博客中文翻译 2020(五十五)原文:TowardsDataScience Blog 协议:CC BY-NC-SA 4.0GPT-3,OpenAI 的革命原文:https://towardsdatascience.com/gpt-3-openais-revolution-f549bf3d4b25?source=collection_archive---------43-----------------------来源…

约80%开发效率提升,原生鸿蒙政务、文旅行业样板间专区上线

10月8日,华为官方正式宣布,其最新操作系统HarmonyOS NEXT于当日10:08正式开启公测。 为有效助力开发者加速行业应用开发,华为开发者联盟生态市场(简称生态市场)近日上线了原生鸿蒙政务行业、文旅行业“样板间”专区。政务和文旅行业作为数字化转型的重要领域,对数智应用的…

TowardsDataScience-博客中文翻译-2020-四十五-

TowardsDataScience 博客中文翻译 2020(四十五)原文:TowardsDataScience Blog 协议:CC BY-NC-SA 4.0基于 Avro 模式的类固醇弹性研究原文:https://towardsdatascience.com/elasticsearch-on-steroids-with-avro-schemas-3bfc483e3b30?source=collection_archive---------…

一站实现高效开发,鸿蒙生态伙伴模板组件专区全新上线

10月8日,华为官方正式宣布,其最新操作系统HarmonyOS NEXT于当日10:08正式开启公测。 鸿蒙生态的发展离不开丰富的鸿蒙原生应用,为了有效提升开发者开发效率,降低开发成本,华为开发者联盟生态市场近日上线了“鸿蒙生态伙伴模板&组件专区”,汇聚官方及三方生态伙伴针对政务…

TowardsDataScience-博客中文翻译-2020-三-

TowardsDataScience 博客中文翻译 2020(三)原文:TowardsDataScience Blog 协议:CC BY-NC-SA 4.0做出更好决策的 3 个要素原文:https://towardsdatascience.com/3-essentials-to-make-better-decisions-9b2cdc60365e?source=collection_archive---------47---------------…

git怎么查看每次的提交记录控制台输出日志乱码

今天来和各位小伙伴分享一下怎么查看git的每次提交(commit)的记录: 1.打开idea ——2.点击做下加的git ——3.点击log ——4.选择自己的分支 ——5.查看每次提交的代码 二、控制台log4j输出的日志乱码: 解决办法: 1、将图中几处地方变为urf-8 2、

How to create a PDF programming cheat sheet All In One

How to create a PDF programming cheat sheet All In One 如何创建 PDF 编程备忘单 / 速查表How to create a PDF programming cheat sheet All In One如何创建 PDF 编程备忘单 / 速查表tools vscode pdf 编辑器 solutionsExport web page to pdf / 网页导出为 pdf优点:可以高…