void DrawAt(Vector3 position)
    {
        var scale = this.scale;

        if (useTransformScale)
        {
            scale = transform.lossyScale.x;
        }
        if (showSphere)
        {
            Gizmos.DrawSphere(position, scale);
        }
        if (showWireSphere)
        {
            Gizmos.DrawWireSphere(position, scale);
        }
        //if (showWireCube) Gizmos.DrawWireCube(position, Vector3.one * scale);

        if (showWireCube)
        {
            GizmosExtension.DrawTransformWireCube(transform);
        }

        Gizmos.matrix = Matrix4x4.LookAt(transform.position, transform.position + transform.forward, transform.up);
        if (showForwardDirection)
        {
            Gizmos.DrawFrustum(Vector3.zero, 30, 0, scale, 1);
        }
        Gizmos.matrix = Matrix4x4.identity;
    }