Unity 手指触摸的方向(单手)

最近写了一个跑酷游戏,总结下里面的知识点:O(∩_∩)O~

using UnityEngine;
using System.Collections;

public class Demo : MonoBehaviour
{
    public Vector3 lastMonseDown;

    /// <summary>
    /// 判断手指触摸的方向
    /// </summary>
    /// <returns></returns>
    TouchDir GetTouchDir()
    {
        //记录第一次手指点击的坐标点
        if (Input.GetMouseButtonDown(0))
        {
            lastMonseDown = Input.mousePosition;
        }

        //UICamera.hoveredObject防止NGUI点击穿透问题
        if (Input.GetMouseButtonUp(0) && UICamera.hoveredObject == null)
        {
            //结束坐标-开始坐标
            Vector3 mouseUp = Input.mousePosition;
            Vector3 touchOffset = mouseUp - lastMonseDown;

            //滑动超过50像素,算一次正确的滑动
            if (Mathf.Abs(touchOffset.x) > 50 || Mathf.Abs(touchOffset.y) > 50)
            {
                if (Mathf.Abs(touchOffset.x) > Mathf.Abs(touchOffset.y) && touchOffset.x > 0)
                {
                    return TouchDir.Right;
                }
                else if (Mathf.Abs(touchOffset.x) > Mathf.Abs(touchOffset.y) && touchOffset.x < 0)
                {
                    return TouchDir.Left;
                }
                else if (Mathf.Abs(touchOffset.x) < Mathf.Abs(touchOffset.y) && touchOffset.y > 0)
                {

                    return TouchDir.Top;
                }
                else if (Mathf.Abs(touchOffset.x) < Mathf.Abs(touchOffset.y) && touchOffset.y < 0)
                {

                    return TouchDir.Bottom;
                }
            }
            else
            {
                return TouchDir.None;
            }
        }

        return TouchDir.None;
    }

}

/// <summary>
/// 触摸的方向
/// </summary>
public enum TouchDir
{
    None,
    Left,
    Right,
    Top,
    Bottom
}
时间: 2024-10-20 07:47:53

Unity 手指触摸的方向(单手)的相关文章

移动端判断触摸的方向

最近做微信端页面,于是趁周末梳理了下移动端的事件这一块. 通过判断手指在屏幕上移动的位置减去手指放在屏幕上时的位置,就可以得出是往什么方向滑动: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css">

unity判断触摸

单点触摸 Input.touchCount==1 移动触摸 Input.GetTouch(0).phase==TouchPhase.Moved 多点触摸 Input.touchCount > 1 判断两只手指至少有一只为移动触摸 Input.GetTouch(0).phase == TouchPhase.Moved || Input.GetTouch(1).phase == TouchPhase.Moved /** * 判断是否为单点触摸 **/ public static bool singl

手机端触摸的方向判断

function load(){ document.addEventListener('touchstart',touch, false); document.addEventListener('touchmove',touch, false); document.addEventListener('touchend',touch, false); function touch (event){ var event = event || window.event; var oInp = docu

Xenko基础API笔记3- Pointers指针设备屏幕上点对应的手指触摸。

样本这里是一个简单的示例程序,跟踪目前在屏幕上的指针和打印他们的位置.访问输入字段,类继承自@ SiliconStudio.Xenko.脚本的类. public override async Task Execute() { var pointerPositions = new Dictionary<int, Vector2>(); while (true) { await Scheduler.NextFrame(); foreach (var pointerEvent in Input.Po

8.8

一.如何判断手指触摸的方向 判断很简单,touchmove的最后坐标减去touchstart的起始坐标,X的结果如果正数,则说明手指是从左往右划动:X的结果如果负数,则说明手指是从右往左划动:Y的结果如果正数,则说明手指是从上往下划动:Y的结果如果负数,则说明手指是从下往上划动. 这再逻辑上没有任何问题.但在实际操作中,手指的上下滑动其实是很难直上直下的,只要稍微有点斜,就会被X轴的判断先行接管. 那么接下来我们就加上特别的判断技巧: $("body").on("touchs

用HTML和javascript(JS)计算触屏手机手指滑动方向的演示

移动终端的流行,程序员希望通过HTML+JS完成触屏动作的识别.下面给出具体实现的例子,供大家参考. 将下面的代码复制并保存,用手机访问,现在的手机浏览器一般都支持触屏,针对本演示来讲就是支持三个js事件: 1.touchstart---手指开始触摸事件,此事件可以获取起始坐标,将起始坐标保存在pressX 和pressY 中. 2.touchmove---手机触摸移动时间,只要手机不离开指定元素,就不停的将手机的新坐标通过事件发给页面上的js代码.通过计算此事件获取的当前坐标与起始坐标的差,就

FingerGestures研究院之初探Unity手势操作

最近研究了一下Unity中的一个手势操作的插件FingerGestures.它能很方便监听到Unity中的各种手势事件:上下左右四方向的滑动事件.按下事件.抬起事件.移动事件.连击事件.长按事件等等.它同时支持触摸屏操作与鼠标操作,总起来说使用起来还是比较方便的,今天写下教程记录这个插件的详细使用步骤.首先下载这个插件,大家可以在圣典上找这个插件的下载地址,当然也可以在本文最后下载该插件.  我看了一下这个插件底层的实现步骤,他是通过C#代理的形式来实现手势操作的.如下图红圈内所示,这五个重要的

Unity制作简单3D图表

开篇废话: 在大学时稍微自学过一段时间Unity3D,虽然现在在做安卓,但一直对游戏开发很感兴趣,所以平时偶尔有空也会稍微看看,不过水平还是未入门菜鸟级的. 下面这个demo是看了雨松MOMO大神所写的几篇基础文章后,写的一个练习demo,用来展示简易的3D图表. 这个Demo非常初级,纯粹是为了练习知识点,但是所应用到的知识点非常基础,非常重要,适合初学者学习.截图如下:     简介: 这个Demo可以分为4个部分 第一部分--建立3D坐标系: 外框首先由四个平面所围成的一个"3D坐标系&q

touchSwipe移动端触摸事件

今天分享一款很棒的插件touchSwipe,估计很多朋友都在找手机全屏滚动的效果,因为好多企业的微官网是或是专题都在用这样的效果,那么今天touchSwipe 1.6是最新的专门为移动设备设计的jquery插件,如:Ipad,苹果.安卓,当然PC上也是可以用的,嘻嘻.插件touchSwipe可监听单个和多个手指触摸,鼠标按着左键拖动等事件,因此插件可以实现滑动滚屏.缩放等效果.本实例主讲滚屏效果,相了解缩放功能的请参考官方文档. 特点: 1.监听滑动的4个方向:上.下.左.右: 2.监听多个手指