使用前提
必须在场景中加载EasyTouch核心组件,此组件不能在运行时修改选项,加载EasyTouch的方法有两种:
- 【GameObject】–>【EasyTouch】–>【EasyTouch】
- AddComponent
事件模式
事件一旦注册,关闭脚本是不能取消事件的,所以,脚本中要在写事件取消订阅的方法,OnEnable()和OnDisable()方法,分别订阅和取消订阅
private void OnEnable()
{
EasyTouch.On_SwipeEnd += OnSwipe;
EasyTouch.On_SimpleTap += OnTap;
}
private void OnDisable()
{
DisTouchEvent();
}
private void DisTouchEvent()
{
EasyTouch.On_SimpleTap -= OnTap;
EasyTouch.On_SwipeEnd -= OnSwipe;
}
void OnSwipe(Gesture gesture)
{
Debug.Log(gesture.swipe);
}
新模式
在Update()中使用
void Update () {
Gesture current = EasyTouch.current;
// Cube
if (current.type == EasyTouch.EvtType.On_SimpleTap && current.pickedObject !=null && current.pickedObject.name=="Cube"){
ResteColor();
cube = current.pickedObject;
cube.GetComponent<Renderer>().material.color = Color.red;
transform.Translate(Vector2.up, Space.World);
}
// Swipe
if (current.type == EasyTouch.EvtType.On_Swipe && current.touchCount == 1){
transform.Translate( Vector3.left * current.deltaPosition.x / Screen.width);
transform.Translate( Vector3.back * current.deltaPosition.y / Screen.height);
}
// Pinch
if (current.type == EasyTouch.EvtType.On_Pinch ){
Camera.main.fieldOfView += current.deltaPinch * 10 * Time.deltaTime;
}
// Twist
if (current.type == EasyTouch.EvtType.On_Twist ){
transform.Rotate( Vector3.up * current.twistAngle);
}
}
Quick模式
此模式采用AddComponent添加Quick Xx脚本,此脚本在运行时会自动添加EasyTouch对象自带核心组件。
总结
- 默认ugui是能被检测的
- EasyTouch对Swipe和Drag手势的认定规则:
Swipe手势:当鼠标或手指下没有物体时,识别为Swipe
Drag手势:当鼠标或手指下有物体时,识别为Drag
产生Swipe手势的条件是,不碰到物体,如果在ugui下使用Swipe手势就得关闭EasyTouch核发组件的Enable Unity UI detection
Swipe手势事件有6个
Drag手势事件也是6个