I am trying to simulate a keyboard on screen using pngs as GUI textures that form the background of the OnGUI() button control. However when I run the scene there is a lot of lag. I’m sure there is a better way of doing this so please let me know how i could make my code better.
the pngs I’m using are 81 x 82 pixels with a gap of 5px between buttons.
I have used the following code to do this
public Texture[] alphaButtons;
void OnGUI ()
{
GUI.BeginGroup (new Rect (Screen.width / 2 - 428, Screen.height / 2 + 128, 855, 256));
// All rectangles are now adjusted to the group. (0,0) is the topleft corner of the group.
// Alphabet buttons
/****************************First Row****************************/
if (GUI.Button(new Rect(0, 0, 81, 82), alphaButtons[0], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(86, 0, 81, 82), alphaButtons[1], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(172, 0, 81, 82), alphaButtons[2], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(258, 0, 81, 82), alphaButtons[3], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(344, 0, 81, 82), alphaButtons[4], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(430, 0, 81, 82), alphaButtons[5], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(516, 0, 81, 82), alphaButtons[6], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(601, 0, 81, 82), alphaButtons[7], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(688, 0, 81, 82), alphaButtons[8], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(774, 0, 81, 82), alphaButtons[9], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
/****************************Second Row*****************************/
if (GUI.Button(new Rect(0, 87, 81, 82), alphaButtons[10], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(86, 87, 81, 82), alphaButtons[11], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(172, 87, 81, 82), alphaButtons[12], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(258, 87, 81, 82), alphaButtons[13], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(344, 87, 81, 82), alphaButtons[14], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(430, 87, 81, 82), alphaButtons[15], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(516, 87, 81, 82), alphaButtons[16], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(601, 87, 81, 82), alphaButtons[17], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(688, 87, 81, 82), alphaButtons[18], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
/****************************Third Row****************************/
if (GUI.Button(new Rect(0, 174, 81, 82), alphaButtons[19], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(86, 174, 81, 82), alphaButtons[20], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(172, 174, 81, 82), alphaButtons[21], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(258, 174, 81, 82), alphaButtons[22], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(344, 174, 81, 82), alphaButtons[23], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(430, 174, 81, 82), alphaButtons[24], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
if (GUI.Button(new Rect(516, 174, 81, 82), alphaButtons[25], "default1"))
{
GameObject.Find("Soldier").SendMessage("mistakeMade");
}
// End the group we started above. This is very important to remember!
GUI.EndGroup ();
}