uumli Geschrieben 24. Mai 2017 Melden Share Geschrieben 24. Mai 2017 Hallo Leute, ich habe ein kleines Score-Script. Mit diesem werden Punkte gesammelt, die später bei einem Händler eingelöst werden können. Diese Punkte müssen allerdings Scenenübergreifend sein, da eine Runde bei mir in mehrere Scenen aufgeteilt sind. Ich kenne mich nicht so gut mit den Player.Prefs aus, vieleicht könnt ihr mir helfen? Ich packe hier einmal das Script hinein: sing UnityEngine; using System.Collections; using UnityEngine.UI; public class ScoreManager : MonoBehaviour { public static int score; Text text; void Start() { text = GetComponent<Text> (); score = 0; } void Update() { if (score <0) score = 0; text.text = "" + score; } public static void Points (int addPoints) { score += Points; } public static void Reset() { score = 0; } } Die Variable Score muss nun in die Player.Prefs, damit die Punkte in den nächsten Scenen immernoch vorhanden sind und von dem Scoretext angezeigt werden. Könnt ihr mir dabei helfen? Vielen Dank für die nette Unterstützung Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Zer0Cool Geschrieben 24. Mai 2017 Melden Share Geschrieben 24. Mai 2017 Wenn du auch ohne PlayerPrefs auskommst, dann kannst du auch diesen Ansatz hier verwenden. Die Klasse "GameScore" ist "static" und damit scenenübergreifend aktiv:https://forum.unity-community.de/topic/12865-score-erstellen/#comment-94856 using UnityEngine; using System.Collections; static class GameScore { private static int sumScorePoints = 0; public static void ClearScore() { sumScorePoints = 0; } public static int GetScore() { return sumScorePoints; } public static void AddScore(int points) { sumScorePoints += points; } } Deine Klasse "ScoreManager" kann diese Klasse dann einfach verwenden. using UnityEngine; using System.Collections; using UnityEngine.UI; public class ScoreManager : MonoBehaviour { Text text; void Start() { text = GetComponent<Text>(); GameScore.ClearScore(); } void Update() { text.text = "" + GameScore.GetScore(); } public static void Points(int addPoints) { GameScore.AddScore(addPoints); } public static void Reset() { GameScore.ClearScore(); } } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
uumli Geschrieben 24. Mai 2017 Autor Melden Share Geschrieben 24. Mai 2017 Ich versuche es mal damit. Dankeschön Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Zer0Cool Geschrieben 24. Mai 2017 Melden Share Geschrieben 24. Mai 2017 Ich habe sie fix erweitert und schon in deinen Code eingebunden. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
uumli Geschrieben 24. Mai 2017 Autor Melden Share Geschrieben 24. Mai 2017 Danke, hat geklappt. Ich habe zuerst übersehen, dass der Score im Scormanager zurückgesetzt wird, beim start. Jetzt klappt alles. Vielen Dank, hat mir sehr geholfen. 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.