protected void OnTriggerEnter2D(Collider2D collider) { TriggerScreenBorders trigger = collider.GetComponent <TriggerScreenBorders>(); Vector2 newPosition = Vector2.zero; if (trigger != null) { if (this.gameObject.CompareTag(Tags.LEFT_BORDER)) { newPosition.x = _oppositeBorder.transform.position.x + _triggerBoxOffset - trigger.ColliderRadius - _epsilonOffset; newPosition.y = trigger.ControllerTransform.position.y; } else if (this.gameObject.CompareTag(Tags.RIGHT_BORDER)) { newPosition.x = _oppositeBorder.transform.position.x + _triggerBoxOffset + trigger.ColliderRadius + _epsilonOffset; newPosition.y = trigger.ControllerTransform.position.y; } else if (this.gameObject.CompareTag(Tags.TOP_BORDER)) { newPosition.x = trigger.ControllerTransform.position.x; newPosition.y = _oppositeBorder.transform.position.y + _triggerBoxOffset + trigger.ColliderRadius + _epsilonOffset; } else if (this.gameObject.CompareTag(Tags.BOTTOM_BORDER)) { newPosition.x = trigger.ControllerTransform.position.x; newPosition.y = _oppositeBorder.transform.position.y + _triggerBoxOffset - trigger.ColliderRadius - _epsilonOffset; } trigger.ControllerTransform.position = newPosition; } }