--- Geschrieben 10. Mai 2019 Melden Share Geschrieben 10. Mai 2019 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 More sharing options...
KaBau Geschrieben 10. Mai 2019 Melden Share Geschrieben 10. Mai 2019 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 More sharing options...
--- Geschrieben 10. Mai 2019 Autor Melden Share Geschrieben 10. Mai 2019 Vielen dank Funktioniert alles Die ResetLvL(); Methode war eigentlich so gedacht das man egal welches Level man ist komplett Resetet wird und falls man unter 0 kommt auf lvl 1 gesetzt wird Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 10. Mai 2019 Melden Share Geschrieben 10. Mai 2019 Dann kannst du auch einfach LvLStatus = 1; schreiben Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
--- Geschrieben 10. Mai 2019 Autor Melden Share Geschrieben 10. Mai 2019 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 More sharing options...
Sascha Geschrieben 10. Mai 2019 Melden Share Geschrieben 10. Mai 2019 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 More sharing options...
--- Geschrieben 10. Mai 2019 Autor Melden Share Geschrieben 10. Mai 2019 Super ich danke dir musste nurnoch die SaveAndDisplayLevel(); In die Start(); Methode Einfügen dann lief alles super Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.