大家好,又见面了,我是你们的朋友全栈君。
EasyTouch基本用法
本文提供全流程,中文翻译。 Chinar坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) |
---|
1
hierarchy (层次面板)中创建 EasyTouch
2
using – 引用命名空间
HedgehogTeam 是他们团队名称。—— 刺猬
代码语言:javascript复制using HedgehogTeam.EasyTouch;
3
EasyTouch.4_x 版本的基本写法
运用事件 委托的方式
(相较于 EasyTouch.5_x 的写法。节省性能,不过要麻烦一些)
代码语言:javascript复制using UnityEngine;
using HedgehogTeam.EasyTouch;//引用命名空间
/// <summary>
/// EasyTouch 4 版本的基本写法
/// </summary>
public class Easy4 : MonoBehaviour
{
/// <summary>
/// 在OnEnable中注册EasyTouch事件
/// </summary>
private void OnEnable()
{
//添加委托
EasyTouch.On_TouchStart = OnTouchStart;
EasyTouch.On_TouchUp = OnTouchEnd;
EasyTouch.On_Swipe = OnTouchSwipe;
}
/// <summary>
/// 在OnDisable中取消注册事件
/// </summary>
private void OnDisable()
{
//删除委托
EasyTouch.On_TouchStart -= OnTouchStart;
EasyTouch.On_TouchUp -= OnTouchEnd;
EasyTouch.On_Swipe -= OnTouchSwipe;
}
/// <summary>
/// 在OnDestroy中删除注册事件
/// </summary>
private void OnDestroy()
{
//删除委托
EasyTouch.On_TouchStart -= OnTouchStart;
EasyTouch.On_TouchUp -= OnTouchEnd;
EasyTouch.On_Swipe -= OnTouchSwipe;
}
/// <summary>
/// 开始手势
/// </summary>
/// <param name="gesture"></param>
void OnTouchStart(Gesture gesture)
{
print("OnTouchStart");
print(gesture.startPosition "开始坐标");
}
/// <summary>
/// 结束手势
/// </summary>
/// <param name="gesture"></param>
void OnTouchEnd(Gesture gesture)
{
print("OnTouchEnd");
print(gesture.position "结束坐标");
print(gesture.actionTime "结束持续了多久");
}
/// <summary>
/// 拖动手势
/// </summary>
/// <param name="gesture"></param>
void OnTouchSwipe(Gesture gesture)
{
print("OnTouchSwipe");
print(gesture.position "拖动坐标");
print(gesture.actionTime "拖动持续了多久");
print(gesture.swipe "类型");
}
}
4
EasyTouch.5_x 版本的基本写法
通过系统自带函数 Update 內建方法体,来直接完成判定
(由于每帧都需要容错,稍微的消耗性能,不过要简单许多)
提示: EasyTouch.5_x 版本中 加强了易用性!
EasyTouch 被设为单例。就算 Hierarchy 中不创建 EasyTouch。在场景运行时,系统会自动完成创建。
代码语言:javascript复制using UnityEngine;
using HedgehogTeam.EasyTouch;//引用命名空间
/// <summary>
/// Easy5 版本的基本写法
/// </summary>
public class Easy5Write : MonoBehaviour
{
/// <summary>
/// 更新函数
/// </summary>
void Update()
{
//用 EasyTouch.current 记录玩家输入的手势 presentGesture
Gesture presentGesture = EasyTouch.current;
//容错 (当玩家没有手势输入的时候)
if (presentGesture!=null)
{
//以下判断 玩家手势类型 是否和 EasyTouch系统手势类型相同
if (EasyTouch.EvtType.On_TouchStart == presentGesture.type)
{
OnTouchStart(presentGesture);
}
else if (EasyTouch.EvtType.On_TouchUp == presentGesture.type)
{
OnTouchEnd(presentGesture);
}
else if (EasyTouch.EvtType.On_Swipe == presentGesture.type)
{
OnTouchSwipe(presentGesture);
}
}
}
/// <summary>
/// 开始手势
/// </summary>
/// <param name="gesture"></param>
void OnTouchStart(Gesture gesture)
{
print("OnTouchStart");
print(gesture.startPosition "开始坐标");
}
/// <summary>
/// 结束手势
/// </summary>
/// <param name="gesture"></param>
void OnTouchEnd(Gesture gesture)
{
print("OnTouchEnd");
print(gesture.position "结束坐标");
print(gesture.actionTime "结束持续了多久");
}
/// <summary>
/// 拖动手势
/// </summary>
/// <param name="gesture"></param>
void OnTouchSwipe(Gesture gesture)
{
print("OnTouchSwipe");
print(gesture.position "拖动坐标");
print(gesture.actionTime "拖动持续了多久");
print(gesture.swipe "类型");
}
}
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/167655.html原文链接:https://javaforall.cn