I would like to show the lives as in the following image
[26980-prova+ui±+copia.png|26980]
I added the first life, and this is the script that I did:
public class GuiLife : MonoBehaviour
{
public Texture middle;
public Texture Base;
public GameObject player;
private playerLife lifeScript;
private int life;
private int n;
void Start ()
{
lifeScript = player.GetComponent ("playerLife") as playerLife;
life = lifeScript.vita;
n = life - 1;
}
void OnGUI()
{
if (life == 1)
{
GUI.DrawTexture (new Rect(800.0f,-75.0f,100.0f,200.0f), Base,ScaleMode.ScaleToFit,true,0);
}
if (life > 1)
{
GUI.DrawTexture (new Rect(800.0f,-75.0f,100.0f,200.0f), Base,ScaleMode.ScaleToFit,true,0);
for (int i = 0, i < n , i++)
{
}
}
}
}
I wanted to check inside for how many lives I n times and add the texture to life, but the question is how do I tell him automatically wrapped the x position of the texture “middle”?
It’s possible do this white the FOR or i need to place the textures for each case?
It is very likely that there is a much more efficient way to do this thing, I’m a beginner and this is the only way that came to my mind.
Right now I’m using this bad script.
void Start ()
{
lifeScript = player.GetComponent (“playerLife”) as playerLife;
n = life - 1;
}
void Update ()
{
life = lifeScript.vita;
}
void OnGUI()
{
if (life == 1)
{
GUI.DrawTexture (new Rect(800.0f,-75.0f,100.0f,200.0f), Base,ScaleMode.ScaleToFit,true,0);
}
if (life == 2)
{
GUI.DrawTexture (new Rect(800.0f,-75.0f,100.0f,200.0f), Base,ScaleMode.ScaleToFit,true,0);
GUI.DrawTexture (new Rect(740.0f,-75.0f,100.0f,200.0f), middle,ScaleMode.ScaleToFit,true,0);
}
if (life == 3)
{
GUI.DrawTexture (new Rect(800.0f,-75.0f,100.0f,200.0f), Base,ScaleMode.ScaleToFit,true,0);
GUI.DrawTexture (new Rect(740.0f,-75.0f,100.0f,200.0f), middle,ScaleMode.ScaleToFit,true,0);
GUI.DrawTexture (new Rect(680.0f,-75.0f,100.0f,200.0f), middle,ScaleMode.ScaleToFit,true,0);
}
if (life == 4)
{
GUI.DrawTexture (new Rect(800.0f,-75.0f,100.0f,200.0f), Base,ScaleMode.ScaleToFit,true,0);
GUI.DrawTexture (new Rect(740.0f,-75.0f,100.0f,200.0f), middle,ScaleMode.ScaleToFit,true,0);
GUI.DrawTexture (new Rect(680.0f,-75.0f,100.0f,200.0f), middle,ScaleMode.ScaleToFit,true,0);
GUI.DrawTexture (new Rect(620.0f,-75.0f,100.0f,200.0f), middle,ScaleMode.ScaleToFit,true,0);
}
if (life == 5)
{
GUI.DrawTexture (new Rect(800.0f,-75.0f,100.0f,200.0f), Base,ScaleMode.ScaleToFit,true,0);
GUI.DrawTexture (new Rect(740.0f,-75.0f,100.0f,200.0f), middle,ScaleMode.ScaleToFit,true,0);
GUI.DrawTexture (new Rect(680.0f,-75.0f,100.0f,200.0f), middle,ScaleMode.ScaleToFit,true,0);
GUI.DrawTexture (new Rect(620.0f,-75.0f,100.0f,200.0f), middle,ScaleMode.ScaleToFit,true,0);
GUI.DrawTexture (new Rect(560.0f,-75.0f,100.0f,200.0f), middle,ScaleMode.ScaleToFit,true,0);
}
if (life == 6)
{
GUI.DrawTexture (new Rect(800.0f,-75.0f,100.0f,200.0f), Base,ScaleMode.ScaleToFit,true,0);
GUI.DrawTexture (new Rect(740.0f,-75.0f,100.0f,200.0f), middle,ScaleMode.ScaleToFit,true,0);
GUI.DrawTexture (new Rect(680.0f,-75.0f,100.0f,200.0f), middle,ScaleMode.ScaleToFit,true,0);
GUI.DrawTexture (new Rect(620.0f,-75.0f,100.0f,200.0f), middle,ScaleMode.ScaleToFit,true,0);
GUI.DrawTexture (new Rect(560.0f,-75.0f,100.0f,200.0f), middle,ScaleMode.ScaleToFit,true,0);
GUI.DrawTexture (new Rect(500.0f,-75.0f,100.0f,200.0f), middle,ScaleMode.ScaleToFit,true,0);
}
if (life == 7)
{
GUI.DrawTexture (new Rect(800.0f,-75.0f,100.0f,200.0f), Base,ScaleMode.ScaleToFit,true,0);
GUI.DrawTexture (new Rect(740.0f,-75.0f,100.0f,200.0f), middle,ScaleMode.ScaleToFit,true,0);
GUI.DrawTexture (new Rect(680.0f,-75.0f,100.0f,200.0f), middle,ScaleMode.ScaleToFit,true,0);
GUI.DrawTexture (new Rect(620.0f,-75.0f,100.0f,200.0f), middle,ScaleMode.ScaleToFit,true,0);
GUI.DrawTexture (new Rect(560.0f,-75.0f,100.0f,200.0f), middle,ScaleMode.ScaleToFit,true,0);
GUI.DrawTexture (new Rect(500.0f,-75.0f,100.0f,200.0f), middle,ScaleMode.ScaleToFit,true,0);
GUI.DrawTexture (new Rect(440.0f,-75.0f,100.0f,200.0f), middle,ScaleMode.ScaleToFit,true,0);
}
}
Thanks in advice!