CameraTools.Detail.AABRectForOnScreenArea.AdjustPanningDeltaMoveToFollowLimits C# (CSharp) Method

AdjustPanningDeltaMoveToFollowLimits() public method

public AdjustPanningDeltaMoveToFollowLimits ( Vector3 &deltaMove, Vector3 limitMinPoint, Vector3 limitMaxPoint ) : void
deltaMove UnityEngine.Vector3
limitMinPoint UnityEngine.Vector3
limitMaxPoint UnityEngine.Vector3
return void
        public void AdjustPanningDeltaMoveToFollowLimits(ref Vector3 deltaMove, Vector3 limitMinPoint, Vector3 limitMaxPoint)
        {
            Calculate();

            // Check map x+ border
            if (deltaMove.x > 0)
            {
                float limit = limitMaxPoint.x;
                if (maxX + deltaMove.x > limit)
                    deltaMove.x = limit - maxX;
            }
            // Check map x- border
            else
            {
                float limit = limitMinPoint.x;
                if (minX + deltaMove.x < limit)
                    deltaMove.x = limit - minX;
            }

            // Check map z+ border
            if (deltaMove.z > 0)
            {
                float limit = limitMaxPoint.z;
                if (maxZ + deltaMove.z > limit)
                    deltaMove.z = limit - maxZ;
            }
            // Check map z- border
            else
            {
                float limit = limitMinPoint.z;
                if (minZ + deltaMove.z < limit)
                    deltaMove.z = limit - minZ;
            }
        }

Usage Example

 private void UpdatePanningWhileDragging(Vector3 panDelta, ref Vector3 position)
 {
     AABRectForOnScreenArea rect = new AABRectForOnScreenArea();
     rect.AdjustPanningDeltaMoveToFollowLimits(ref panDelta, levelLimitMin.position, levelLimitMax.position);
     panningVelocity.UpdateWhileDragging (panDelta);
     position += panDelta;
 }
All Usage Examples Of CameraTools.Detail.AABRectForOnScreenArea::AdjustPanningDeltaMoveToFollowLimits