zoukankan      html  css  js  c++  java
  • Unity 手指上下左右滑动的判定

    using UnityEngine;
    using System.Collections;
    
    public class jarodInputController : MonoBehaviour {
    
    
    private float fingerActionSensitivity = Screen.width * 0.05f; //手指动作的敏感度,这里设定为 二十分之一的屏幕宽度.
    //
    private float fingerBeginX;
    private float fingerBeginY;
    private float fingerCurrentX;
    private float fingerCurrentY;
    private float fingerSegmentX;
    private float fingerSegmentY;
    //
    private int fingerTouchState;
    //
    private int FINGER_STATE_NULL = 0;
    private int FINGER_STATE_TOUCH = 1;
    private int FINGER_STATE_ADD = 2;
    // Use this for initialization
    void Start () 
    {
    fingerActionSensitivity = Screen.width * 0.05f;
    
    fingerBeginX = 0;
    fingerBeginY = 0;
    fingerCurrentX = 0;
    fingerCurrentY = 0;
    fingerSegmentX = 0;
    fingerSegmentY = 0;
    
    fingerTouchState = FINGER_STATE_NULL;
    }
    // Update is called once per frame
    void Update ()
    {
    
    if (Input.GetKeyDown (KeyCode.Mouse0)) 
    {
    
    if(fingerTouchState == FINGER_STATE_NULL)
    {
    fingerTouchState = FINGER_STATE_TOUCH;
    fingerBeginX = Input.mousePosition.x;
    fingerBeginY = Input.mousePosition.y;
    }
    
    }
    
    if(fingerTouchState == FINGER_STATE_TOUCH)
    {
    fingerCurrentX = Input.mousePosition.x;
    fingerCurrentY = Input.mousePosition.y;
    fingerSegmentX = fingerCurrentX - fingerBeginX;
    fingerSegmentY = fingerCurrentY - fingerBeginY;
    
    }
    
    
    if (fingerTouchState == FINGER_STATE_TOUCH) 
    {
    float fingerDistance = fingerSegmentX*fingerSegmentX + fingerSegmentY*fingerSegmentY; 
    
    if (fingerDistance > (fingerActionSensitivity*fingerActionSensitivity))
    {
    toAddFingerAction();
    }
    }
    
    if (Input.GetKeyUp(KeyCode.Mouse0))
    {
    fingerTouchState = FINGER_STATE_NULL;
    }
    }
    
    private void toAddFingerAction()
    {
    
    fingerTouchState = FINGER_STATE_ADD;
    
    if (Mathf.Abs (fingerSegmentX) > Mathf.Abs (fingerSegmentY)) 
    {
    fingerSegmentY = 0;
    } 
    else 
    {
    fingerSegmentX = 0;
    }
    
    if (fingerSegmentX == 0) 
    {
    if (fingerSegmentY > 0) 
    {
    Debug.Log ("up");
    } 
    else {
    Debug.Log ("down");
    }
    } 
    else if(fingerSegmentY == 0) 
    {
    if(fingerSegmentX > 0)
    {
    Debug.Log ("right");
    }
    else
    {
    Debug.Log("left");
    }
    }
    
    }
    }
  • 相关阅读:
    自己第一个github开源的感受
    直播时代--IOS直播客户端SDK,美颜直播【开源】
    OpenCL / OpenGL / OpenAL
    FFmpeg 라이브러리 코덱과 영상 변환을 중심으로
    nginx + http2.0 解决浏览器跨域和同源限制问题
    软件编译系统构建
    SRS支持rtmp/srt/gb28181/webrtc上行推流和rtmp/http-flv/hls/dash/gb28181/webrtc下行拉流
    SIP UA/UAC/UAS/GB28181-Server/GB28181-Client 五合一
    SUPL(安全用户面定位)
    RTMP低延时配置
  • 原文地址:https://www.cnblogs.com/newcaoguo/p/5957995.html
Copyright © 2011-2022 走看看