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; } } }
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; }