public class ArMonoDevelop : MonoBehaviour
{
// Use this for initialization
//需要放大缩小旋转的物体
public GameObject rotateAndEnlargeObj;
public bool isRotate = true;
public bool isEnlarge = true;
void Start()
{
}
void OnEnable()
{
if (isRotate)
{
EasyTouch.On_Drag += OnDrag;
}
if (isEnlarge)
{
EasyTouch.On_PinchIn += OnPinchIn;
EasyTouch.On_PinchOut += OnPinchOut;
}
EasyTouch.On_SimpleTap += OnSimpleTap;
EasyTouch.On_DoubleTap += OnDoubleTap;
}
void OnDisable()
{
if (isRotate)
{
EasyTouch.On_Drag -= OnDrag;
}
if (isEnlarge)
{
EasyTouch.On_PinchIn -= OnPinchIn;
EasyTouch.On_PinchOut -= OnPinchOut;
}
EasyTouch.On_SimpleTap -= OnSimpleTap;
EasyTouch.On_DoubleTap -= OnDoubleTap;
}
void OnSimpleTap(Gesture gest)
{
if (gest.pickedObject != null)
{
SimpleTap(gest);
}
else
{
Vuforia.CameraDevice.Instance.SetFocusMode(Vuforia.CameraDevice.FocusMode.FOCUS_MODE_TRIGGERAUTO);
}
}
protected virtual void SimpleTap(Gesture gest)
{
}
void OnDoubleTap(Gesture gest)
{
if (gest.pickedObject != null)
{
DoubleTap(gest);
}
}
protected virtual void DoubleTap(Gesture gest)
{
}
void OnDrag(Gesture gest)
{
if (gest.pickedObject != null)
{
if (rotateAndEnlargeObj != null)
{
Vector3 v = rotateAndEnlargeObj.transform.localRotation.eulerAngles;
v.y -= gest.deltaPosition.x * 20 * Time.deltaTime;
v.y -= gest.deltaPosition.y * 20 * Time.deltaTime;
rotateAndEnlargeObj.transform.localRotation = Quaternion.Euler(v);
}
}
}
void OnPinchIn(Gesture gest)
{
if (gest.pickedObject != null)
{
if (rotateAndEnlargeObj != null)
{
Vector3 localScale = rotateAndEnlargeObj.transform.localScale;
float num = (0.01f * gest.deltaPinch);
rotateAndEnlargeObj.transform.localScale = new Vector3(localScale.x - num, localScale.y - num, localScale.z - num);
if (rotateAndEnlargeObj.transform.localScale.x < 1)
{
rotateAndEnlargeObj.transform.localScale = new Vector3(1, 1, 1);
}
}
}
}
void OnPinchOut(Gesture gest)
{
if (gest.pickedObject != null)
{
if (rotateAndEnlargeObj != null)
{
Vector3 localScale = rotateAndEnlargeObj.transform.localScale;
float num = (0.01f * gest.deltaPinch);
rotateAndEnlargeObj.transform.localScale = new Vector3(localScale.x + num, localScale.y + num, localScale.z + num);
if (rotateAndEnlargeObj.transform.localScale.x > 2)
{
rotateAndEnlargeObj.transform.localScale = new Vector3(2, 2, 2);
}
}
}
}
}