/// <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 }); }; }
// 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); } }
private void Start() { _rigidbody = GetComponent <Rigidbody>(); _rigidbody.centerOfMass = Vector3.Scale(_centerMass.localPosition, transform.localScale); _dragTranslate = GetComponent <LeanDragTranslate>(); }