Entweder verwendest du eine Klasse mit statischen Methoden oder du verwendest ein Skript für die Spielszenen (dort, wo die Highscores erzeugt werden) und hängst dieses je 1 Mal in jede Szene.
In beiden Fällen könntest du im Hintergrund auf die
PlayerPrefs zugreifen, wenn eine Klasse mit statischen Methoden verwendet wird, könnten auch statische Variablen verwendet werden.
Es ist grundsätzlich zwar auch möglich, DontDestroyOnLoad aufzurufen, allerdings muss man bei all diesen GameObjects berücksichtigen, wann diese erzeugt/hinzugefügt werden, in welchen Szenen sie erhalten bleiben dürfen und wann sie entfernt werden dürfen. Wenn im Hintergrund auf die PlayerPrefs o. ä. zurückgegriffen wird, gibt es keinen Grund, ein GameObject über mehrere Szenen hinweg beibehalten zu wollen. (Sich dies zu ersparen, macht die Sache grundsätzlich auch einfacher, aber das ist nur meine Meinung.)
@Schorsch:
Es könnten höchstens ein paar Details sein, die beim Szenenwechsel noch relevant sein könnten (bspw. werden grundsätzlich erst alle Objekte destroyt, wozu auch der Aufruf von
OnDestroy gehört, Ausnahmen wurden hier bereits 2 genannt, und dann wird die neue Szene geladen und initialisiert (
Awake und
Start)), allerdings ist es im Groben (soweit ich weiß) richtig.