Files
Main/Assets/Plugins/References/FuncellBase/Interface/IFingerGesturesEvent.cs
2025-01-25 04:38:09 +08:00

98 lines
4.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using UnityEngine;
namespace Thousandto.Core.Base
{
/// <summary>
/// 手指手势的操作 接口定义
/// </summary>
public interface IFingerGesturesEvent
{
//按下
event FingerDownEventHandler OnFingerDown;
//弹起
event FingerUpEventHandler OnFingerUp;
//两个手指的捏操作
event PinchEventHandler OnPinchBegin;
event PinchMoveEventHandler OnPinchMove;
event PinchEventHandler OnPinchEnd;
//两个手指的旋转操作
event RotationBeginEventHandler OnRotationBegin;
event RotationMoveEventHandler OnRotationMove;
event RotationEndEventHandler OnRotationEnd;
//单个手指的滑动操作
event FingerMoveEventHandler OnFingerMoveBegin;
event FingerMoveEventHandler OnFingerMove;
event FingerMoveEventHandler OnFingerMoveEnd;
}
#region//定义委托
/// <summary>
/// Delegate for the OnFingerDown event
/// </summary>
/// <param name="fingerIndex">0-based index uniquely indentifying a specific finger</param>
/// <param name="fingerPos">Current position of the finger on the screen</param>
public delegate void FingerDownEventHandler(int fingerIndex, Vector2 fingerPos);
/// <summary>
/// Delegate for the OnFingerUp event
/// </summary>
/// <param name="fingerIndex">0-based index uniquely indentifying a specific finger</param>
/// <param name="fingerPos">Current position of the finger on the screen</param>
/// <param name="timeHeldDown">How long the finger has been held down before getting released, in seconds</param>
public delegate void FingerUpEventHandler(int fingerIndex, Vector2 fingerPos, float timeHeldDown);
/// <summary>
/// Delegate for the OnFingerMoveBegin, OnFingerMove, OnFingerMoveEnd events
/// </summary>
/// <param name="fingerIndex">0-based index uniquely indentifying a specific finger</param>
/// <param name="fingerPos">Current position of the finger on the screen</param>
public delegate void FingerMoveEventHandler(int fingerIndex, Vector2 fingerPos);
/// <summary>
/// Delegate for the OnPinchBegin and OnPinchEnd events
/// </summary>
/// <param name="fingerPos1">First finger screen position</param>
/// <param name="fingerPos2">Second finger screen position</param>
public delegate void PinchEventHandler(Vector2 fingerPos1, Vector2 fingerPos2);
/// <summary>
/// Delegate for the OnPinchMove event
/// </summary>
/// <param name="fingerPos1">First finger screen position</param>
/// <param name="fingerPos2">Second finger screen position</param>
/// <param name="delta">How much the distance between the two fingers has changed since the last update. A negative value means the two fingers got closer, while a positive value means they moved further apart</param>
public delegate void PinchMoveEventHandler(Vector2 fingerPos1, Vector2 fingerPos2, float delta);
/// <summary>
/// Delegate for the OnRotationBegin event
/// </summary>
/// <param name="fingerPos1">First finger screen position</param>
/// <param name="fingerPos2">Second finger screen position</param>
public delegate void RotationBeginEventHandler(Vector2 fingerPos1, Vector2 fingerPos2);
/// <summary>
/// Delegate for the OnRotationMove event
/// </summary>
/// <param name="fingerPos1">First finger screen position</param>
/// <param name="fingerPos2">Second finger screen position</param>
/// <param name="rotationAngleDelta">Angle difference, in degrees, since the last update.</param>
public delegate void RotationMoveEventHandler(Vector2 fingerPos1, Vector2 fingerPos2, float rotationAngleDelta);
/// <summary>
/// Delegate for the OnRotationEnd event
/// </summary>
/// <param name="fingerPos1">First finger screen position</param>
/// <param name="fingerPos2">Second finger screen position</param>
/// <param name="totalRotationAngle">Total rotation performed during the gesture, in degrees</param>
public delegate void RotationEndEventHandler(Vector2 fingerPos1, Vector2 fingerPos2, float totalRotationAngle);
#endregion
}