using UnityEngine;
using System.Collections;
public class TouchTest : MonoBehaviour
{
private Vector2 _VecFingerArea;//手指的移动范围
private float _FlStateTime;//手指停留的时间
private string _StrTip = "";//屏幕显示
// private float _Str01 = 0;
// private float _Str02 = 0;
private bool _IsFirstTouch = false; //是否是首次触摸
private float _FirstTouchTime; //第一次触摸屏幕时间
private float _SecondTouchTime; //第二次触摸屏幕时间
void Start ()
{
}//end_Start
void Update ()
{
//代表一个手指,第一个触摸信息阶段是移动的话
if (Input.touchCount == 1 && Input.GetTouch(0).phase == TouchPhase.Moved) {
//得到手指上的滑动XY的增量
_VecFingerArea.x += Input.GetTouch (0).deltaPosition.x;
_VecFingerArea.y += Input.GetTouch (0).deltaPosition.y;
if (_VecFingerArea.x > 100) {
_StrTip = "手指右滑";
}
if (_VecFingerArea.x < -100) {
_StrTip = "手指左滑";
}
if (_VecFingerArea.y > 100) {
_StrTip = "手指上滑";
}
if (_VecFingerArea.y < -100) {
_StrTip = "手指下滑";
}
// _Str01 = _VecFingerArea.x;
// _Str02 = _VecFingerArea.y;
}
//档手指离开屏幕的时候,进行清零操作
if (Input .GetTouch(0).phase == TouchPhase.Ended) {
_VecFingerArea = Vector2.zero;
}
//手指停留的操作
if (Input.GetTouch(0).phase == TouchPhase.Stationary) {
_FlStateTime += Input.GetTouch (0).deltaTime;
if (_FlStateTime>1) {
_StrTip = "发现手指停留";
//清零
_FlStateTime = 0;
}
}
//识别手指双击
if (Input.GetTouch(0).phase == TouchPhase.Began) {
//第一次点击的时候_IsFirstTouch由false变为true
_IsFirstTouch = true;
//记录第一次触摸的时间
_FirstTouchTime = Time.time;
//如果第一次触摸是True
if (_IsFirstTouch) {
//记录第2次的触摸时间
_SecondTouchTime = Time.time;
}
//如果第二次点击和第一次点击的时间差在0.05s到0.2s之间时,打印“发现手指双击”
if (_SecondTouchTime - _FirstTouchTime >= 0.05f && _SecondTouchTime - _FirstTouchTime <=0.2f) {
_StrTip = "发现手指双击";
}
}
}//end_Update
void OnGUI(){
//显示检测到的触摸信息
GUILayout.Label(_StrTip);
}
}
C#触摸屏点击测试
最新推荐文章于 2024-06-04 16:58:55 发布