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");
    }
    }
    
    }
    }
  • 相关阅读:
    ssm框架整合入门系列——删除-员工的删除
    ssm框架整合入门系列——修改-员工的修改
    git新建分支并推送至远程仓库库
    想带你去火星看日出
    offsetTop无法获取目标display为none的值
    Vue axios 读取api.github.com展示用户信息
    ssm框架整合入门系列——新增-员工的添加
    课时10:列表:一个打了激素的数组1
    课时9:了不起的分支和循环3
    课时8:了不起的分支和循环2
  • 原文地址:https://www.cnblogs.com/newcaoguo/p/5957995.html
Copyright © 2011-2022 走看看