unity_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 Pinch和Quick 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
上一篇: 回合制手游《仙剑奇侠传3D》如何多开防封搬砖月入万元项目
下一篇: Unity 理解游戏优化