/// <summary>
        ///
        /// </summary>
        /// <param name="gameObject"></param>
        /// <param name="includeChildren"></param>
        /// <param name="callback"></param>
        public void RegisterDraggableUI(GameObject gameObject, bool includeChildren, OnTouchDelegate callback)
        {
            LeanDragTranslate drag       = gameObject.AddComponent <LeanDragTranslate>();
            LeanSelectable    selectable = AddSelectableComponent(gameObject);

            if (includeChildren)
            {
                HandleIncludeChildren(gameObject, selectable);
            }
            selectable.OnSelect.AddListener((LeanFinger finger) =>
            {
                drag.AddFinger(finger);
            });
            selectable.OnDeselect.AddListener(() =>
            {
                drag.RemoveAllFingers();
            });


            drag.Inertia                  = .2f;
            drag.Dampening                = 10.0f;
            drag.RequiredSelectable       = selectable;
            drag.Use.IgnoreStartedOverGui = false;
            selectable.DeselectOnUp       = true;
            drag.OnDrag += (Vector3 delta) =>
            {
                callback?.Invoke(new TouchCallbackVO()
                {
                    gameObject     = gameObject,
                    delta          = delta,
                    screenPosition = gameObject.transform.position
                });
            };
        }
예제 #2
0
 // Start is called before the first frame update
 void Start()
 {
     image              = GameObject.Find("RawImage");
     borderObject       = GameObject.Find("Border");
     sprite             = GetComponent <SpriteRenderer>();
     camera             = GameObject.Find("Main Camera");
     cameraScript       = camera.GetComponent <PanZoom>();
     moving             = false;
     selected           = false;
     imageRectTransform = image.GetComponent <RectTransform>();
     m_RawImage         = image.GetComponent <RawImage>();
     borderImage        = borderObject.GetComponent <Image>();
     leanDrag           = GetComponent <LeanDragTranslate>();
     leanSelect         = GetComponent <LeanSelectable>();
 }
        /// <summary>
        ///
        /// </summary>
        /// <param name="gameObject"></param>
        public void UnRegisterAll(GameObject gameObject)
        {
            LeanFingerTap     tap  = gameObject.GetComponent <LeanFingerTap>();
            LeanFingerDown    down = gameObject.GetComponent <LeanFingerDown>();
            LeanFingerUp      up   = gameObject.GetComponent <LeanFingerUp>();
            LeanDragTranslate drag = gameObject.GetComponent <LeanDragTranslate>();

            if (drag != null)
            {
                GameObject.Destroy(drag);
            }
            if (down != null)
            {
                down.OnFinger.RemoveAllListeners();
                down.OnPosition.RemoveAllListeners();
            }
            if (up != null)
            {
                up.OnFinger.RemoveAllListeners();
                up.OnPosition.RemoveAllListeners();
            }
            if (tap != null)
            {
                tap.OnFinger.RemoveAllListeners();
                tap.OnPosition.RemoveAllListeners();

                if (registeredTapCallbacks.ContainsKey(tap))
                {
                    registeredTapCallbacks.Remove(tap);
                }
            }

            if (registeredSwipeDeltaCallbacks.ContainsKey(gameObject))
            {
                registeredSwipeDeltaCallbacks.Remove(gameObject);
            }
        }
예제 #4
0
 private void Start()
 {
     _rigidbody = GetComponent <Rigidbody>();
     _rigidbody.centerOfMass = Vector3.Scale(_centerMass.localPosition, transform.localScale);
     _dragTranslate          = GetComponent <LeanDragTranslate>();
 }