public void MouseDown(Transform mouseTransform) { if (_snapable == null) { return; } if (_snapableOffset == null) { _snapableOffset = _snapable.GetBlockContainerTransform().position - mouseTransform.position; } foreach (ISnapable snapable in _snapable.ShapeContainer.Transform.GetComponentsInChildren <ISnapable>()) { snapable.SetIsTrigger(true); } _isDragging = true; Vector2?targetPos = mouseTransform.position + _snapableOffset; _snapable.GetBlockContainerTransform().position = (Vector3)targetPos; Rigidbody2D snapableRb = _snapable.Transform.parent.GetComponent <Rigidbody2D>(); if (Math.Abs(snapableRb.gravityScale) > 0.001f) { _lastGravityScale = snapableRb.gravityScale; } snapableRb.gravityScale = 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); } }