自己写的一套用于Unity移动端手势操作的判断,主要有单指移动3D物体、单指旋转3D物体、双指缩放3D物体,这里首先分开介绍用于互斥三种手势操作的基类,其他相应手势操作请查看我博客中相应文章。
using UnityEngine;
using System.Collections;
/// <summary>
/// 手势操作父类,并用于互斥三种手势
/// </summary>
public class GestureControl : MonoBehaviour
{
//记录手势状态:
//-1——没有任何手势在操作
//0——移动手势正在操作
//1——旋转手势正在操作
//2——缩放手势正在操作
public static int status = -1;
//用于记录触碰物体的时间(区分同为单指时移动与旋转,详见相应代码)
public static float TouchTime = 0;
protected bool isSelected = false;
//判断是否事先选择到了某物体
protected void OnMouseDown() {
isSelected = true;
}
//手指抬起,记录归零
protected void OnMouseUp() {
isSelected = false;
status = -1;
TouchTime = 0;
}
// Update is called once per frame
protected void Update()
{
if (!isSelected)
{
return;
}
else if(status == -1)
{
InputCheck();
}
}
/// <summary>
/// 之类相应操作
/// </summary>
protected virtual void InputCheck() { }
}