private void TrySnap(ISnapable snapable)
        {
            List <ISnapPoint> snapPoints = snapable.GetSnapPoints();

            foreach (ISnapPoint snapPoint in snapPoints)
            {
                ISnapPoint targetSnapPoint = snapPoint.GetTriggeredSnapable();
                if (targetSnapPoint != null && snapPoint.GetTransform().parent.parent != targetSnapPoint.GetTransform().parent.parent)
                {
                    Snapsnapable(snapPoint, targetSnapPoint);
                    return;
                }
            }
        }
Exemple #2
0
    private void OnTriggerEnter2D(Collider2D other)
    {
        ISnapable snapable = other.GetComponent <ISnapable>();

        if (snapable == null)
        {
            return;
        }

        foreach (var snapable2 in snapable.GetBlockContainerTransform().GetComponentsInChildren <ISnapable>())
        {
            snapable2.SetIsTrigger(false);
        }
    }
        public void MouseUp()
        {
            if (_snapable == null)
            {
                return;
            }

            foreach (ISnapable snapable in _snapable.ShapeContainer.Transform.GetComponentsInChildren <ISnapable>())
            {
                TrySnap(snapable);
                _snapable.SetIsTrigger(false);
            }
            _snapable.Transform.parent.GetComponent <Rigidbody2D>().gravityScale = _lastGravityScale;
            _isDragging     = false;
            _snapableOffset = null;
            _snapable       = null;
        }
        public void OnTriggerExit2D(Collider2D other)
        {
            ISnapable snapable = other.GetComponent <ISnapable>();

            if (snapable == null)
            {
                return;
            }

            _snapable?.UnHighlight();

            if (_snapable != snapable)
            {
                return;
            }

            _snapable       = null;
            _snapableOffset = null;
        }
        public void OnTriggerStay2D(Collider2D other)
        {
            if (_snapable != null)
            {
                return;
            }

            ISnapable snapable = other.GetComponent <ISnapable>();

            if (snapable == null)
            {
                return;
            }

            if (_snapable != null && _snapable != snapable)
            {
                _snapable.UnHighlight();
            }

            snapable.Highlight();
            _snapable = snapable;
        }