/// <summary> /// Performs a collision detection in the horizontal grounded direction. /// </summary> public CollisionHitInfo HorizontalGroundedCollision(Vector3 castDirection, bool positiveDirection, float movementAmount, LayerMask layerMask) { CollisionHitInfo hitInfo = new CollisionHitInfo(); hitInfo.Reset(); if (movementAmount < 0) { return(hitInfo); } float castDistance = characterBody.SkinWidth + movementAmount; hitInfo = PhysicsUtilities.RaycastSweep( characterBody.Is3D(), positiveDirection ? characterBody.bottomRightCollision_StepOffset : characterBody.bottomLeftCollision_StepOffset, positiveDirection ? characterBody.topRightCollision : characterBody.topLeftCollision, characterBody.HorizontalRays, castDirection, castDistance, RaySelectionRule.ShortestNonZero, layerMask ); return(hitInfo); }