Staggering buttons with GUI.SelectionGrid

I’m trying to offset buttons so they are layed out at a diagonal from each other. Each one corresponds to a different view of the screen; so, it would make sense to use GUI.SelectionGrid to have the buttons provide feedback for which screen the user is currently on. Is there anyway to do this with one SelectionGrid? I was thinking placing them in a GUILayout would be the way to go. If that’s the right path would it just take nesting the SelectionGrid between GUILayout.BeginHorizontal and BeginVertical?

Here’s a screen shot of what I’m attempting to accomplish:

18962-buttonlayout.jpg

The SelectionGrid just seems like the class I want to use to have selected buttons highlighted.

There is no way to align the items within a selection grid afaik. I used toggle buttons with a button skin for that and controlled their state by an array.

just a small example:

bool[] myStates = new bool[3]{true, false, false};

...

GUILayout.BeginHorizontal(); //your custom layout instead
{
    if(GUILayout.Toggle(myStates[0], "Pay", myButtonStyle))
    {
        CheckState(myStates, 0);
    }
    if(GUILayout.Toggle(myStates[1], "Politics", myButtonStyle))
    {
        CheckState(myStates, 1);
    }
    if(GUILayout.Toggle(myStates[2], "Strike", myButtonStyle))
    {
        CheckState(myStates, 2);
    }
}
GUILayout.EndHorizontal();

...

protected void CheckState(bool[] values, int selectedIndex)
{
    for (int i = 0; i < values.Length; i++) 
    {
        values *= i == selectedIndex;*

}
}