Unity UI 识别画圆手势
最近做了一个项目,需要打开一个编辑UI,平时不显示,如果在UI界面上做一个按钮,感觉很丑,就想到了Reporter_Logs的画圆触发。
识别到你在界面上画了一个圆 (可用于 Windows 和 Android) 代码如下:
bool isGestureDone()
{
if (Application.platform == RuntimePlatform.Android ||
Application.platform == RuntimePlatform.IPhonePlayer)
{
if (Input.touches.Length != 1)
{
gestureDetector.Clear();
gestureCount = 0;
}
else
{
if (Input.touches[0].phase == TouchPhase.Canceled || Input.touches[0].phase == TouchPhase.Ended)
gestureDetector.Clear();
else if (Input.touches[0].phase == TouchPhase.Moved)
{
Vector2 p = Input.touches[0].position;
if (gestureDetector.Count == 0 || (p - gestureDetector[gestureDetector.Count - 1]).magnitude > 10)
gestureDetector.Add(p);
}
}
}
else
{
if (Input.GetMouseButtonUp(0))
{
gestureDetector.Clear();
gestureCount = 0;
}
else
{
if (Input.GetMouseButton(0))
{
Vector2 p = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
if (gestureDetector.Count == 0 || (p - gestureDetector[gestureDetector.Count - 1]).magnitude > 10)
gestureDetector.Add(p);
}
}
} if (gestureDetector.Count < 10)
return false; gestureSum = Vector2.zero;
gestureLength = 0;
Vector2 prevDelta = Vector2.zero;
for (int i = 0; i < gestureDetector.Count - 2; i++)
{ Vector2 delta = gestureDetector[i + 1] - gestureDetector[i];
float deltaLength = delta.magnitude;
gestureSum += delta;
gestureLength += deltaLength; float dot = Vector2.Dot(delta, prevDelta);
if (dot < 0f)
{
gestureDetector.Clear();
gestureCount = 0;
return false;
} prevDelta = delta;
} int gestureBase = (Screen.width + Screen.height) / 4; if (gestureLength > gestureBase && gestureSum.magnitude < gestureBase / 2)
{
gestureDetector.Clear();
gestureCount++;
if (gestureCount >= numOfCircleToShow)
return true;
} return false;
}
Unity UI 识别画圆手势的更多相关文章
- Unity GL 画圆
Unity下GL没有画圆的函数,只能自己来了. 如果能帮到大家,我也很高兴. 虽然没有画圆的函数,但是能画直线,利用这一点,配合微积分什么的,就可以画出来了.反正就是花很多连在一起的直线,每条直线足够 ...
- java练习:质数,匿名内部类创建接口,抽象类派生子类,画圆,字节截取字符串,数字变钱币,五子棋,梭哈
java学习-质数的孤独 正在看质数的孤独,,,于是写了一个练习代码,输出1-100之间的质数 代码比较烂.待完善吧. 这里用到了continue和break,continue指结束当前轮次循环,跳入 ...
- WebGIS中基于AGS的画圆查询简析以及通过Polygon来构造圆的算法
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 某个项目需求中需要在前端进行画圆查询,将圆范围上的多边形要素 ...
- 《图形学》实验六:中点Bresenham算法画圆
开发环境: VC++6.0,OpenGL 实验内容: 使用中点Bresenham算法画圆. 实验结果: 代码: #include <gl/glut.h> #define WIDTH 500 ...
- Unity UI on the HoloLens
Following the steps under "Required configuration" will allow Unity UI to continue to work ...
- ArcGIS JS 学习笔记2 实现仿百度的拖拽画圆
一.前言 吐槽一下,百度在国内除了百度地图是良心产品外,其他的真的不敢恭维.在上一篇笔记里,我已经实现了自定义的地图测量模块.在百度地图里面(其他地图)都有一个周边搜索的功能,拖拽画一个圆,然后以圆半 ...
- canvas入门(画圆)
1.想在H5上画一个canvas,必须在页面上你需要的地方添加canvas标签, <canvas id="myCanvas"></canvas> 接着需 ...
- 【openGL】画圆
#include "stdafx.h" #include <GL/glut.h> #include <stdlib.h> #include <math ...
- javascript画直线和画圆的方法(非HTML5的方法)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 【液晶模块系列基础视频】4.1.X-GUI图形界面库-画线画圆等函数简介
[液晶模块系列基础视频]4.1.X-GUI图形界面库-画线画圆等函数简介 ============================== 技术论坛:http://www.eeschool.org 博客地 ...
随机推荐
- vertica 7.0 使用kafka
config.propertiesclient.id设置为主机名或ip auto.offset.reset=smallest client.id=qas 设置环境变量 kafka_config=&qu ...
- 超详细版本vue+capacitor(自定义capacitor插件)编写移动端应用
我的环境 Node v16.13.0 npm v8.1.0 mac的话需要安装Xcode windows的话需要Java 8 JDK和Android Studio软件 本文以安卓开发为例 找一个自己喜 ...
- 一文详解如何在基于webpack5的react项目中使用svg
本文主要讨论基于webpack5+TypeScript的React项目(cra.craco底层本质都是使用webpack,所以同理)在2023年的今天是如何在项目中使用svg资源的. 首先,假定您已经 ...
- java入门与进阶P-5.5+P-5.6
投票统计 写一个程序,输入数量不确定的[0,9]范围内的整数,统计每一中数字出现的次数,输入-1表示结束 循环遍历 通常都是使用for循环,让循环变量i从0到<数组的length,这样循环体内最 ...
- 使用VMware Converter Standalone P2V(物理机转换虚拟机)
使用VMware Converter Standalone P2V(物理机转换虚拟机) 环境说明: 1.P2V软件:VMware-converter-en-6.3.0-20575345 下载地址:v ...
- 真正“搞”懂HTTP协议10之缓存控制
HTTP缓存相关的问题好像是前端面试中比较常见的问题了,上来就会问什么cache-control字段有哪些,有啥区别啥的.嗯--说实话,我觉得至少在本篇来说,HTTP缓存还算不上复杂,只是字段稍微多了 ...
- wsl 网络探究
省流:wsl2能否固定ip地址? - 豆腐干的回答 - 知乎 https://www.zhihu.com/question/387747506/answer/2764445888 割--------- ...
- Vue 03 VisualStudioCode 搭建一个Vue 框架 的详细流程
转:https://blog.csdn.net/A_awen/article/details/122345082 1 下载VisualStudioCode 1.1 官网下载地址 https://cod ...
- 移除链表元素&反转链表&设计链表
一.移除链表元素 203.移除链表元素 leetcode链接 1.方法概述 带傀儡节点的方法: 创建一个傀儡节点puppet来充当该链表的假头节点,当真正的头结点head不为null时,且在真正的头节 ...
- 视觉SLAM:滑动窗口
1.SLAM问题 1.1建模 考虑某个状态 \(\xi\),以及一次与该变量相关的观测 \(r_{i}\).由于噪声存在,观测服从概率分布 \(p(r_{i}|\xi)\).多个观测时,各个测量值相互 ...