Example #1
0
        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));
        }
Example #2
0
        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);
                }
            }
        }