using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using HedgehogTeam.EasyTouch;
using System.Collections;
public class UIScale : MonoBehaviour
{
private TextMesh textMesh;
//限制缩小的最小值
public float min;
//限制放大的最大值
public float max;
// Subscribe to events
void OnEnable()
{
EasyTouch.On_TouchStart2Fingers += On_TouchStart2Fingers;
EasyTouch.On_PinchIn += On_PinchIn;
EasyTouch.On_PinchOut += On_PinchOut;
EasyTouch.On_PinchEnd += On_PinchEnd;
}
void OnDisable()
{
UnsubscribeEvent();
}
void OnDestroy()
{
UnsubscribeEvent();
}
// Unsubscribe to events
void UnsubscribeEvent()
{
EasyTouch.On_TouchStart2Fingers -= On_TouchStart2Fingers;
EasyTouch.On_PinchIn -= On_PinchIn;
EasyTouch.On_PinchOut -= On_PinchOut;
EasyTouch.On_PinchEnd -= On_PinchEnd;
}
// 在两指接触开始
private void On_TouchStart2Fingers(Gesture gesture)
{
//验证对对象的操作
if (gesture.isOverGui)
{
if (gesture.pickedUIElement == gameObject || gesture.pickedUIElement.transform.IsChildOf(transform))
{
// 禁用扭手势识别为一个真正的捏结束
EasyTouch.SetEnablePinch(true);
}
}
}
// At the pinch in
private void On_PinchIn(Gesture gesture)
{
// Verification that the action on the object
//当前图片的放大
if (gesture.isOverGui)
{
if (gesture.pickedUIElement == gameObject || gesture.pickedUIElement.transform.IsChildOf(transform))
{
Vector3 localScale = transform.localScale;
//deltaPinch自上次改变以来的缩放长度增量
float zoom = Time.deltaTime * gesture.deltaPinch;
transform.localScale = new Vector3(localScale.x - zoom, localScale.y - zoom, 1);
if (transform.localScale.x < min)
{
transform.localScale = new Vector3(min, min, min);
}
}
}
}
// At the pinch out
private void On_PinchOut(Gesture gesture)
{
// Verification that the action on the object
//当前图片的缩小
if (gesture.isOverGui)
{
if (gesture.pickedUIElement == gameObject || gesture.pickedUIElement.transform.IsChildOf(transform))
{
Vector3 localScale = transform.localScale;
//如果是缩小 zoom则是负数
float zoom = Time.deltaTime * gesture.deltaPinch;
transform.localScale = new Vector3(localScale.x + zoom, localScale.y + zoom, 1);
if (transform.localScale.x > max)
{
transform.localScale = new Vector3(max, max, max);
}
}
}
}
// At the pinch end
private void On_PinchEnd(Gesture gesture)
{
if (gesture.isOverGui)
{
if (gesture.pickedUIElement == gameObject || gesture.pickedUIElement.transform.IsChildOf(transform))
{
transform.localScale = new Vector3(2.5f, 2.5f, 0f);
}
}
}
}