Is it possible to tint individual buttons of a GUI.SeletionGrid?
If not, to manually construct this, would looping through a bunch of buttons ever be interpreted oddly so that only one button is rendered at a time (instead of the entire grid):
Very rough pseudocode of what I mean:
for(var i:int=0;i<maxButtons;i++){
GUI.color = MyColor(i); // tints gui just for this button
if(GUI.Button...)
DoThis(i)
}
So, with buttons, you’ll need an int to know wich one is activated (simulate the SeletionGrid actually), and two styles. A classic one with normal-over-down and the one for the activated button with the down texture in the normal background (I’m not sure thats clear …)
do this, faster, makes a large mutlibutton grid and paint the buttons colors in art program:
Problem with that, is it uses 1 draw call per button, very slow, for like 10x10 buttons is 100 draw calls. here is a button using whatever texture you want, it returns number of button clicked on your texture:
function OnGUI(){
var gridpixels = 20;//pixels per grid square
var gidxsquares = 12;//num squares in x direction
if (GUI.Button(Rect(320,10,240,60),fctbutton,GUIStyle.none))
{
var xpos = Input.mousePosition.x - 320 ;
var ypos = Screen.height - Input.mousePosition.y -10;
var result = Mathf.Floor(xpos / gridpixels) + Mathf.Floor(ypos / gridpixels)*gidxsquares + 1;//plus 1 at end for not zero first square
//
print (result);
}