private void FixedUpdate()
    {
        Debug.DrawRay(transform.position + detectOffset, Vector3.down * detectDepth, Color.yellow);
        var        originPoint = transform.position + detectOffset;
        RaycastHit hit;

        if (Physics.Raycast(originPoint, Vector3.down, out hit, detectDepth, detectMask.value))
        {
            if (!lastGround)
            {
                OnTouchGround?.Invoke(hit.collider);
            }

            lastGround = hit.collider;

            OnStayGround?.Invoke(hit.collider);
        }
        else
        {
            OnLeaveGround?.Invoke(lastGround);
            lastGround = null;
        }
    }
 private void OnTriggerExit2D(Collider2D collision)
 {
     isGrounded = false;
     OnLeaveGround?.Invoke();
 }