예제 #1
0
 public override void Awake()
 {
     base.Awake();
     //取得管理者的邏輯物件
     logicObject = nadiSystemEditor.logicObject;
     //
     exposeToEditor = GetComponent <ExposeToEditor>();
     leanSelectable = GetComponent <LeanSelectable>();
 }
 void Awake()
 {
     selectable           = GetComponent <LeanSelectable>();
     draggingEnabled      = true;
     rigScaler            = GetComponent <RigScaler>();
     playerCamera         = Camera.main;
     resetableRigidbodies = transform.GetComponentsInChildren <ResetableRigidbody>();
     rigidbodies          = transform.GetComponentsInChildren <Rigidbody>().ToList();
 }
        private LeanSelectable AddSelectableComponent(GameObject gameObject)
        {
            LeanSelectable selectable = gameObject.GetComponent <LeanSelectable>();

            if (selectable == null)
            {
                selectable = gameObject.AddComponent <LeanSelectable>();
            }
            return(selectable);
        }
예제 #4
0
    private void Start()
    {
        rb             = GetComponent <Rigidbody2D>();
        leanSelectable = GetComponent <LeanSelectable>();

        randTime    = Random.Range(minTimeRange, maxTimeRange);
        currentTime = randTime;

        currentCrazyTime = Random.Range(maxCrazyTime - 1, maxCrazyTime + 1);
    }
예제 #5
0
    private void Start()
    {
        leanSelectable = this.gameObject.GetComponent <LeanSelectable>();

        //Pega a matriz de jogo do nível atual
        Scene scene = SceneManager.GetActiveScene();

        gameController = GameObject.Find("GameController");
        lvl            = (LevelController)gameController.GetComponent("LevelController");
        gameVet        = lvl.GetGameVet(scene.name);
        gameVetProc    = lvl.GetGameProcVet(scene.name);
    }
예제 #6
0
        private void RegisterBaseComponents()
        {
            _mesh = GetComponent <MeshFilter>().sharedMesh;
            _mr   = GetComponent <MeshRenderer>();

            _mainCamera = Camera.main;

            // register lean scripts
            _ls = GetComponent <LeanSelectable>();

            _collider        = GetComponent <MeshCollider>();
            _collider.convex = false;
        }
예제 #7
0
    private void OnTriggerEnter2D(Collider2D other)
    {
        Debug.Log("entered");

        LeanSelectable objectSelect = other.GetComponent <LeanSelectable>();

        if (objectSelect != null)
        {
            objectSelect.enabled = false;

            presents.Add(other.gameObject);
        }
    }
        /// <summary>
        ///
        /// </summary>
        /// <param name="gameObject"></param>
        /// <param name="includeChildren"></param>
        /// <param name="callback"></param>
        public void RegisterSwipeDelta(GameObject gameObject, bool includeChildren, OnTouchDelegate callback)
        {
            if (gameObject == null)
            {
                // Register a global swipe delta event
                RegisterSwipeDelta(callback);
                return;
            }

            LeanFingerMove move       = gameObject.AddComponent <LeanFingerMove>();
            LeanSelectable selectable = AddSelectableComponent(gameObject);

            selectable.DeselectOnUp       = true;
            move.RequiredSelectable       = selectable;
            move.Use.IgnoreStartedOverGui = false;

            selectable.OnSelect.AddListener((LeanFinger finger) =>
            {
                move.AddFinger(finger);
            });
            selectable.OnDeselect.AddListener(() =>
            {
                move.RemoveAllFingers();
            });

            move.OnDrag += (Vector3 delta, Vector3 position) =>
            {
                callback?.Invoke(new TouchCallbackVO()
                {
                    gameObject     = gameObject,
                    delta          = delta,
                    objectPosition = position
                });
            };

            // Check if it exists in the dictionary
            if (registeredSwipeDeltaCallbacks.ContainsKey(gameObject))
            {
                // Check if this particular callback is already registered
                if (registeredSwipeDeltaCallbacks[gameObject].Contains(callback))
                {
                    return;
                }
            }
            else
            {
                registeredSwipeDeltaCallbacks.Add(gameObject, new List <OnTouchDelegate>());
            }

            registeredSwipeDeltaCallbacks[gameObject].Add(callback);
        }
예제 #9
0
    //private void OnEnable()
    //{
    //    LeanTouch.OnGesture += FingerPinch;
    //}

    //private void OnDisable()
    //{
    //    LeanTouch.OnGesture -= FingerPinch;
    //}

    //private void FingerPinch(List<LeanFinger> fingers)
    //{

    //}

    protected virtual void LateUpdate()
    {
        // Get the fingers we want to use
        var fingers = LeanSelectable.GetFingers(IgnoreStartedOverGui, IgnoreIsOverGui, RequiredFingerCount, RequiredSelectable);

        // Get the pinch ratio of these fingers
        var pinchRatio = LeanGesture.GetPinchRatio(fingers);

        if (pinchRatio < 1 && OnPinch != null)
        {
            OnPinch.Invoke();
            Debug.Log("pinching");
        }
    }
예제 #10
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>();
 }
예제 #11
0
 public void Init(EntityData a_data, LeanSelectable a_leanSelectable)
 {
     m_doesRotate = a_data.DoesRotate;
     m_doesScale  = a_data.DoesScale;
     //initialize LeanFingerFilter
     m_use        = new LeanFingerFilter(true);
     m_use.Filter = LeanFingerFilter.FilterType.AllFingers;
     //mark the leanselectable as selected so we can interact with it
     leanSelectable            = a_leanSelectable;
     m_use.RequiredSelectable  = leanSelectable;
     leanSelectable.IsSelected = true;
     //set minimum scale
     minScale             = a_data.Scale;
     transform.localScale = Vector3.one * minScale;
     pinchScale           = 1f;
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="gameObject"></param>
 /// <param name="selectable"></param>
 private void HandleIncludeChildren(GameObject gameObject, LeanSelectable selectable)
 {
     foreach (Transform child in gameObject.transform)
     {
         LeanSelectable s = AddSelectableComponent(child.gameObject);
         s.DeselectOnUp = true;
         s.OnSelect.AddListener((LeanFinger finger) =>
         {
             selectable.Select(finger);
         });
         s.OnDeselect.AddListener(() =>
         {
             selectable.Deselect();
         });
     }
 }
        /// <summary>
        ///
        /// </summary>
        /// <param name="gameObject"></param>
        /// <param name="includeChildren"></param>
        /// <param name="callback"></param>
        public void RegisterTouchDown(GameObject gameObject, bool includeChildren, OnTouchDelegate callback)
        {
            if (gameObject == null)
            {
                RegisterTouchDown(callback);
                return;
            }

            GameObject target = gameObject;

            if (gameObject.transform is RectTransform)
            {
            }
            else
            {
                Collider collider = gameObject.GetComponentInChildren <Collider>();

                if (collider == null)
                {
                    DebugLogger.LogWarning("Touch : Could not register touch down. No Collider found on {0}", gameObject.name);
                    return;
                }
                target = collider.gameObject;
            }

            LeanFingerDown down = target.AddComponent <LeanFingerDown>();

            down.IgnoreStartedOverGui = false;

            LeanSelectable selectable = AddSelectableComponent(gameObject);

            selectable.DeselectOnUp = true;
            down.RequiredSelectable = selectable;
            down.OnFinger.AddListener((LeanFinger leanFinger) =>
            {
                Vector3 pos = leanFinger.ScreenPosition;
                callback?.Invoke(new TouchCallbackVO
                {
                    gameObject     = gameObject,
                    screenPosition = leanFinger.ScreenPosition
                });
            });
        }
예제 #14
0
    protected virtual void Update()
    {
        if (!RotateEnabled)
        {
            return;
        }

        var fingers = LeanSelectable.GetFingers(_ignoreStartedOverGui, _ignoreIsOverGui);

        if (fingers.Count <= 0)
        {
            return;
        }

        var firstFinger = fingers[0];
        var direction   = Mathf.Sign(firstFinger.ScreenDelta.x);
        var magnitude   = firstFinger.ScreenDelta.magnitude;

        transform.Rotate(Vector3.down, direction * magnitude, Space.Self);
    }
        private void LeanSelectable_OnDeselectGlobal(LeanSelectable obj)
        {
            var item = obj.GetComponent <InventoryItem>();

            _globalEvents.ItemDeselectedEvent.Invoke(item);

            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

            var raycasts = Physics.RaycastAll(ray, 100);

            {
                if (raycasts.Any(x => x.collider.tag == "Bag")) // If pointer is over bag
                {
                    _globalEvents.ItemDroppedToBagEvent.Invoke(item);
                    return;
                }
            }

            if (item.IsInBag)
            {
                _globalEvents.ItemRemovedFromBagEvent.Invoke(item);
            }
        }
예제 #16
0
 // Start is called before the first frame update
 void Start()
 {
     leanSelectable = GetComponent <LeanSelectable>();
     rb             = GetComponent <Rigidbody2D>();
 }
예제 #17
0
 void Start()
 {
     leanSelectable = GetComponent <LeanSelectable>();
 }
예제 #18
0
        } //END Awake

        //-------------------------------//
        public override void PrepareEvent()
        //-------------------------------//
        {
            
            if( action == Actions.CopyValues )
            {
                if( TransformAction_CopyValues() && copyToTransform != null )
                {
                    eventReady = true;
                }
                else if( TransformAction_CopyValues() && copyToRectTransform != null )
                {
                    eventReady = true;
                }
            }
            else if( action == Actions.SetValues )
            {
                if( TransformType_Transform() && ChangeTransform != null )
                {
                    eventReady = true;
                }
                else if( TransformType_RectTransform() && ChangeRectTransform != null )
                {
                    eventReady = true;
                }
            }
            else if( action == Actions.EnablePinchToScale )
            {
#if LEANTOUCH
                leanSelectable = null;
                leanManualRotateSmooth = null;
                leanMultiTwist = null;
                leanScale = null;
                
                if( IsGestureTransformTypeBlockModel() && blockModelToChange != null )
                {
                    eventReady = true;
                }
                else if( IsGestureTransformTypeTransform() && transformToChange != null )
                {
                    eventReady = true;
                }
                else
                {
                    eventReady = false;
                }
#else
                eventReady = false;
#endif
            }
            else if( action == Actions.EnableTwistToRotate )
            {
#if LEANTOUCH
                leanSelectable = null;
                leanManualRotateSmooth = null;
                leanMultiTwist = null;
                leanScale = null;

                if( IsGestureTransformTypeBlockModel() && blockModelToChange != null )
                {
                    eventReady = true;
                }
                else if( IsGestureTransformTypeTransform() && transformToChange != null )
                {
                    eventReady = true;
                }
                else
                {
                    eventReady = false;
                }
#else
                eventReady = false;
#endif
            }
            else if( action == Actions.DisablePinchToScale )
            {
#if LEANTOUCH
                if( IsGestureTransformTypeBlockModel() && blockModelToChange != null )
                {
                    eventReady = true;
                }
                else if( IsGestureTransformTypeTransform() && transformToChange != null )
                {
                    eventReady = true;
                }
                else
                {
                    eventReady = false;
                }
#else
                eventReady = false;
#endif
            }
            else if( action == Actions.DisableTwistToRotate )
            {
#if LEANTOUCH
                if( IsGestureTransformTypeBlockModel() && blockModelToChange != null )
                {
                    eventReady = true;
                }
                else if( IsGestureTransformTypeTransform() && transformToChange != null )
                {
                    eventReady = true;
                }
                else
                {
                    eventReady = false;
                }
#else
                eventReady = false;
#endif
            }
            else if( action == Actions.ReEnablePinchToScale )
            {
#if LEANTOUCH
                if( IsGestureTransformTypeBlockModel() && blockModelToChange != null )
                {
                    eventReady = true;
                }
                else if( IsGestureTransformTypeTransform() && transformToChange != null )
                {
                    eventReady = true;
                }
                else
                {
                    eventReady = false;
                }
#else
                eventReady = false;
#endif
            }
            else if( action == Actions.ReEnableTwistToRotate )
            {
#if LEANTOUCH
                if( IsGestureTransformTypeBlockModel() && blockModelToChange != null )
                {
                    eventReady = true;
                }
                else if( IsGestureTransformTypeTransform() && transformToChange != null )
                {
                    eventReady = true;
                }
                else
                {
                    eventReady = false;
                }
#else
                eventReady = false;
#endif
            }

        } //END PrepareEvent
 private void LeanSelectable_OnSelectGlobal(LeanSelectable arg1, LeanFinger arg2)
 {
     _globalEvents.ItemSelectedEvent.Invoke(arg1.GetComponent <InventoryItem>());
 }
예제 #20
0
 private void Awake()
 {
     _leanSelectable = GetComponent <LeanSelectable>();
     _leanSelectable.OnSelect.AddListener(OnSelect);
 }
예제 #21
0
 private void Awake()
 {
     _outline    = GetComponent <Outline>();
     _selectable = GetComponent <LeanSelectable>();
 }