当前位置: 移动技术网 > IT编程>脚本编程>Python > unity_EasyTouch

unity_EasyTouch

2020年08月10日  | 移动技术网IT编程  | 我要评论
目录导入EasyTouch5EasyTouch4.x的使用编辑脚本导入EasyTouch5导入之后可能会有一个行尾对齐的警告,点击警告用vs或其他编辑器打开,确定,保存即可。EasyTouch4.x的使用如果要使用EasyTouch的功能,那必须先在场景中创建一个EasyTouch的游戏物体,这样那些基于EasyTouch的脚本才能生效。创建空物体创建脚本编辑脚本脚本使用EasyTouch的命名空间订阅事件结果...


一、导入EasyTouch5

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

导入之后可能会有一个行尾对齐的警告,点击警告用vs或其他编辑器打开,确定,保存即可。
在这里插入图片描述

在这里插入图片描述


二、EasyTouch4.x的用法

在这里插入图片描述

1、游戏物体

新建场景EasyTouch4_xDemo
在这里插入图片描述

如果要使用EasyTouch的功能,那必须先在场景中创建一个EasyTouch的游戏物体,这样那些基于EasyTouch的脚本才能生效。
在这里插入图片描述


这就是游戏物体
在这里插入图片描述


创建空物体挂接C#脚本
在这里插入图片描述
创建C#脚本在这里插入图片描述


2、编辑脚本

脚本使用EasyTouch的命名空间
在这里插入图片描述

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using HedgehogTeam.EasyTouch;

public class EasyTouch4_xDemo : MonoBehaviour {

    //在OnEnable中订阅EasyTouch中的事件
    private void OnEnable()
    {
        EasyTouch.On_TouchStart += OnTouchStart;
        EasyTouch.On_TouchUp += OnTouchEnd;
        EasyTouch.On_Swipe += OnSwipe;
    }

    //在OnDisable与OnDestro中取消订阅EasyTouch中对应的事件
    private void OnDisable()
    {
        EasyTouch.On_TouchStart -= OnTouchStart;
        EasyTouch.On_TouchUp -= OnTouchEnd;
        EasyTouch.On_Swipe -= OnSwipe;
    }

    private void OnDestroy()
    {
        EasyTouch.On_TouchStart -= OnTouchStart;
        EasyTouch.On_TouchUp -= OnTouchEnd;
        EasyTouch.On_Swipe -= OnSwipe;
    }

    //------------------------------------//
    void OnTouchStart(Gesture gesture)
    {
        Debug.Log("touch start");
        Debug.Log("StartPosition" + gesture.startPosition);
    }

    void OnTouchEnd(Gesture gesture)
    {
        Debug.Log("touch end,time:");
        Debug.Log("ActionTime" + gesture.actionTime);
    }

    void OnSwipe(Gesture gesture)
    {
        Debug.Log("swipt screen");
        Debug.Log("Type" + gesture.swipe);
    }
}


3、最后一步

在这里插入图片描述

4、结果

在这里插入图片描述


三、EasyTouch5.x的用法

1、场景、游戏物体、脚本

前面操作和EasyTouch4.x基本一样

新建场景EasyTouch5_xDemo
新建脚本EasyTouch5_xDemo
新建空物体,挂架脚本EasyTouch5_xDemo
在这里插入图片描述打开脚本,引入命名空间 using HedgehogTeam.EasyTouch;


2、编写脚本EasyTouch5_xDemo.cs

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


报错。没有进行操作的时候EasyTouch.current会返回空
在这里插入图片描述
所以下面报错的位置是12行
在这里插入图片描述
在这里插入图片描述

修改程序
在这里插入图片描述


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using HedgehogTeam.EasyTouch;

public class EasyTouch5_xDemo : MonoBehaviour {

    private void Update()
    {
        Gesture currentGesture = EasyTouch.current;

        if (currentGesture != null && currentGesture.type == EasyTouch.EvtType.On_TouchStart)
        {
            Debug.Log("touch start");
            Debug.Log("StartPosition" + currentGesture.startPosition);
        }
        if (currentGesture != null && currentGesture.type == EasyTouch.EvtType.On_TouchUp)
        {
            OnTouchEnd(currentGesture);
        }
        if (currentGesture != null && currentGesture.type == EasyTouch.EvtType.On_Swipe)
        {
            OnSwipe(currentGesture);
        }
    }

    //------------------------------------//
    void OnTouchEnd(Gesture gesture)
    {
        Debug.Log("touch end,time:");
        Debug.Log("ActionTime" + gesture.actionTime);
    }

    void OnSwipe(Gesture gesture)
    {
        Debug.Log("swipt screen");
        Debug.Log("Type" + gesture.swipe);
    }
}


3、结果

在这里插入图片描述


4、5代版本新特性

EasyTouch5_x可以不用专门添加EasyTouch,运行时会自动添加,停止就会消失。4代版本没有这个特性
在这里插入图片描述
但由于四代中没有这个功能,所以建议不论用哪个,最好自己手动添加。


四、QuickGesture

1、Quick Drag

新建场景QuickGestureDemo
新建脚本QuickGestureDemo
新建空物体ScriptHolder
新建3D物体Cube,命名为TestCube

TestCube添加可视化脚本
在这里插入图片描述

新建C#脚本QuickGestureDemo




将脚本挂接在ScriptHolder
打开TestCube,添加三个函数。函数打印0、1、2,分别表示拖拽开始、拖拽中、拖拽介绍。
在这里插入图片描述
在这里插入图片描述


结果
在这里插入图片描述


2、Quick Enter Over Exit

进入物体,在物体中,离开物体。分别打印3、4、5。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


3、Quick LongTap

长按物体触发,长按开始、长按中、长按结束。分别打印7、8、9。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


4、Quick Pinch

缩放
在这里插入图片描述
EasyTouch可以让鼠标模拟两指,点击左键不放同时按下ctrl出现第二指。松开之后第二次按下Alt键以第一次的第二指为中心模拟两指。

勾选Gesture over me表示必须在物体上进行操作才能起作用。
在这里插入图片描述


5、Quick Swipe

通过滑屏旋转物体

在这里插入图片描述


6、Quick Tab

鼠标单击物体打印11
在这里插入图片描述

鼠标双击物体打印12

在这里插入图片描述


7、Quick Touch

触摸开始、触摸中、触摸结束。分别打印14、15、16、17。

在这里插入图片描述
在物体内结束触摸打印16
在这里插入图片描述
在物体外结束触摸打印17

在这里插入图片描述


7、Quick Twist

两指旋转物体
在这里插入图片描述


8、注意

8.1、Box Collider

如果与物体接触,一定要勾选Box Collider,除了Quick PinchQuick Twist不勾选Gesture over me
在这里插入图片描述


8.2、相机正交和透视的区别

在这里插入图片描述


五、Trigger

新建场景EasyTouchTriggerDemo
新建脚本EasyTouchTriggerDemo
在Hierarchy添加EasyTouch
新建3个3D物体Cube,命名为Cube1、Cube2、Cube3
在Cube上添加组件Easy Touch Trigger

在这里插入图片描述

脚本EasyTouchTriggerDemo


using UnityEngine;

public class EasyTouchTriggerDemo : MonoBehaviour {

    public void PrintMsg(GameObject go)
    {
        if (go == null)
        {
            Debug.Log("null");
        }
        else
        {
            Debug.Log(go.name);
        }
    }

    public void PrintOK()
    {
        Debug.Log("ok");
    }

    public void PrintOK2()
    {
        Debug.Log("ok2");
    }
}

1、Only if on me

只有点击物体本体才会触发
点击Cube3触发,设置如下
在这里插入图片描述

在这里插入图片描述


2、All the tiem, or other object

选中All the tiem, or other object后,
可以指定触发物体,只有点击指定触发的物体才会响应事件。
也可以不指定,不指定就是在任何地方都可触发。
在这里插入图片描述


3、搭配使用

搭配使用,需要点击本地就选择Only if on me ,在其他地方都可以触发就选择All the tiem, or other object


4、指定响应物体

以上三种都是本物体响应,或者不指定物体响应(场景任何地方响应)

选择Other receiver后,还可以指定其他响应物体
在这里插入图片描述
还可以触发指定触发物体身上挂接的脚本的方法
在这里插入图片描述
举例
Other receiver(接受者)为Cube2,点击Cube3其实是Cube2响应,并且是Cube2自己的方法,打印ok2
在这里插入图片描述

5、总结

指定触发者
Only if on me 点击自己触发
All the tiem, or other object 点击其他 任何物体 触发

指定接受者
Other receiver 指定某个物体响应


本文地址:https://blog.csdn.net/ssc_zcys/article/details/107855138

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网