1. 程式人生 > >EasyTouch物體的旋轉縮放

EasyTouch物體的旋轉縮放

angle num prot auto cte locals isa form float

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); } } } } }

EasyTouch物體的旋轉縮放