Jump to content
Unity Insider Forum

Eine Zahl Erhöhen lassen Script


---

Recommended Posts

Hallo 

Ich habe vor geraumer zeit angefangen ein Spiel mit Unity zu programmieren.

ich würde gerne wenn durch ein Script die Methode GiveLVL(); ausgeführt wird sich Ein UI Text pro Ausführung um eins erhöht.

Ich Probiere schon Tage lang mit Diesem Script Rum und habe mich entschlossen mir Hilfe zu suchen

Ich würde mich Freuen wenn mir Jemand weiter helfen könnte.

    public int LvLStatus = 1;
    public Text TxtShowLvL;   

    }
    public void GiveLVL()
    {
        LvLStatus = LvLStatus + 1;
        if (LvLStatus > 25)
        {
            LvLStatus = 25;
        }
        UpdateLvL();

    }
    public void ResetLVL()
    {

        LvLStatus = LvLStatus - 100;
        if (LvLStatus < 0)
        {
            LvLStatus = 1;
        }
        UpdateLvL();

    }
    public void UpdateLvL()
    {

        TxtShowLvL.text = TxtShowLvL.ToString();

    }
}

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,
wenn ich es richtig sehe, muss der Code am Ende wie folgt aussehen:

 public void UpdateLvL()
    {
        TxtShowLvL.text = LvlStatus.ToString();
    }

So habe ich es bei mir in meinem Script. Du holst dir ja ansonsten gar nicht die vorher ermittelte Variable.

Anmerkung: Anstatt

LvLStatus = LvLStatus + 1;

kannst du auch einfach

LvLStatus += 1;

schreiben. Ebenso "-= 100".

Ist es richtig, dass der Wert "0" auch gilt? Derzeit wird nur bei Werten unter "0" die Variable "LvlStatus" auf "1" gesetzt, nicht beim Wert "0". Das kannst du umgehen, wenn du nicht "<", sondern "<=" einträgst.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ahh okay danke ich werde dies ausbessern :)

könntest du mir eventuell noch bei meinem Fehler beim Abspeichern dieser Werte helfen 

ich habe es mit 

 


		Start();
        SaveLvL = PlayerPrefs.GetInt("LvLSaves");
        LvLStatus = SaveLvL;
        TxtShowLvL.text = SaveLvL;





und 

		UpdateLvL();
        SaveLvL = Convert.ToInt32(TxtShowLvL.text.ToString());
        PlayerPrefs.SetInt("LvLSaves", SaveLvL);
        PlayerPrefs.Save();

Versucht nur leider Geschieht nichts :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Brauchst die Zahl nicht wieder aus dem String rauszuholen, hast sie doch sowieso schon rumliegen. Hier mal ein Beispiel, wie sowas aussehen kann:

private int level = 1;
public Text levelDisplay;

private void Start()
{
  level = PlayerPrefs.GetInt("Level");
}

public void IncreaseLevel()
{ 
  level++;
  SaveAndDisplayLevel();
}

public void ResetLevel()
{
  level = 1;
  SaveAndDisplayLevel();
}

private void SaveAndDisplayLevel()
{
  PlayerPrefs.SetInt("Level", level);
  PlayerPrefs.Save();
  
  levelDisplay.text = level + "";
}

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...