public void Cast(PhysicsCastData castData)
    {
        if (castData == null)
        {
            Debug.LogError(GetType() + " error: CastData is null");
            m_Count = 0;
            return;
        }
        switch (castData.PhysicsCast)
        {
        case PhysicsCast.Ray:
            Debug.LogError("Overlap не работает для Raycast");
            break;

        case PhysicsCast.Sphere:
            SphereOverlap(castData.Position1, castData.Radius, castData.LayerMask, castData.QueryTrigger);
            break;

        case PhysicsCast.Box:
            BoxOverlap();
            break;

        case PhysicsCast.Capsule:
            CapsuleOverlap(castData.Position1, castData.Position2, castData.Radius, castData.LayerMask, castData.QueryTrigger);
            break;
        }
        //m_Count = 0;
    }
    public void Cast(PhysicsCastData castData)
    {
#if UNITY_EDITOR
        Debug.Assert(castData.Direction != Vector3.zero, ("Direction is zero =" + castData.Direction));
#endif
        switch (castData.CountCast)
        {
        case PhysicsCountCast.One: CastOne(castData); break;

        case PhysicsCountCast.All: CastAll(castData); break;
        }
        m_Count = m_CheckIncludeColliders.CheckIncludeColliders(castData.CheckIncludeColliders, m_Array, 0, m_Count, castData.AvgPosition, castData.Direction);
    }
    void CastAll(PhysicsCastData castData)
    {
        switch (castData.PhysicsCast)
        {
        case PhysicsCast.Ray:
            RaycastAll(castData.Position1, castData.Direction, castData.Distance, castData.LayerMask, castData.QueryTrigger);
            break;

        case PhysicsCast.Sphere:
            SphereCastAll(castData.Position1, castData.Radius, castData.Direction, castData.Distance, castData.LayerMask, castData.QueryTrigger);
            break;

        case PhysicsCast.Box:
            BoxCastAll();
            break;

        case PhysicsCast.Capsule:
            CapsuleAllCast(castData.Position1, castData.Position2, castData.Radius, castData.Direction, castData.Distance, castData.LayerMask, castData.QueryTrigger);
            break;
        }
    }
    void CastOne(PhysicsCastData castData)
    {
#if UNITY_EDITOR
        Debug.LogError("CastOne is not released");
#endif
    }