protected float _CalculateGroundDist()
        {
            float groundDist = float.MaxValue;

            for (int i = 0; i < m_smartCollider.BottomCheckPoints.Count; ++i)
            {
                SmartRaycastHit smartHit = m_smartCollider.SmartRaycast(
                    transform.TransformPoint(m_smartCollider.BottomCheckPoints[i]),
                    -transform.up,
                    float.MaxValue,
                    m_smartCollider.LayerCollision | m_smartCollider.OneWayCollisionDown);
                if (smartHit != null)
                {
                    groundDist = Mathf.Min(groundDist, smartHit.distance - m_smartCollider.SkinBottomWidth);
                }
            }
            return(groundDist);
        }