zoukankan      html  css  js  c++  java
  • EasyTouch物体的旋转缩放

    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);
                    }
                }
            }
        }
    }
  • 相关阅读:
    OPC UA认识汇总
    linux内核铁三角-进程(任务)调度
    nginx配置文件
    git和coding的使用
    php处理mysql的结果集
    php中self和$this还有parent的区别
    Mysql练习题
    SEO优化
    css3 旋转 八仙桌
    laravel笔记
  • 原文地址:https://www.cnblogs.com/JimmyCode/p/7834749.html
Copyright © 2011-2022 走看看