private Vector3 GetPivotPositionWhenCorner(ColliderPoint targetPoint) { CornerCollider = PivotCollider.transform; Vector3 vAcross = targetPoint == ColliderPoint.TopRight ? CornerCollider.right : -CornerCollider.right; Vector3 vDown = -CornerCollider.up; return(PivotCollider.GetPoint(targetPoint) + (vAcross.normalized * _colliderDimensions.x) + (vDown.normalized * _colliderDimensions.y)); }
public void UpdatePivotToTarget(bool forceOffEdge = false) { if (PivotCollider != null && UpdatePivot) { Vector2 position = PivotCollider.GetPoint(TargetPoint); Pivot.transform.position = position; if (CharacterPoint == ColliderPoint.BottomLeft || CharacterPoint == ColliderPoint.BottomRight) { float edgeAmount = forceOffEdge ? -0.2f : 0.2f; MovePivotAlongSurface(CharacterPoint == ColliderPoint.BottomLeft ? DirectionTravelling.Left : DirectionTravelling.Right, edgeAmount); } } }