Jump to content
Unity Insider Forum

System Einstellungen


Kojote

Recommended Posts

Grüße!

Mal ne Frage, ich stelle mir gerade mein Optionsmenü zusammen und wollte dem Spieler die Möglichkeit lassen, die Auflösung, Vollbild, Qualität und Co zu überlassen.

1. Frage: QualitySettings.SetQualityLevel(1); // Fängt man hier von 0 oder 1 an zu zählen und geht dann Fastest | Fast | Simple | Good | Beautiful | Fantastic durch?

2. Frage: Speichert sich das Unity intern selbst ab oder muss ich mir das alles über PlayerPrefs speichern und im Awake wieder alls zusammen suchen?

Grüße von Kojote :) 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es fängt bei 0 an. Unity weist aber darauf hin, daß beim einem Build Qualitylevel (also Indices) entfallen können und man sich auf den Index nicht verlassen kann. aber würde ich mal vernachlässigen. Fängt bei mir mit 0 = "Very Low" an und geht bis 5 = "Ultra"

Unity liefert ja prima Beispielcode:

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    void OnGUI() {
        string[] names = QualitySettings.names;
        GUILayout.BeginVertical();
        int i = 0;
        while (i < names.Length) {
            if (GUILayout.Button(names[i]))
                QualitySettings.SetQualityLevel(i, true);
            
            i++;
        }
        GUILayout.EndVertical();
    }
}

Was meinst du mit selbst abspeichern? Die QualityLevel sind bereits durch das Build voreingestellt. Das Q-Level und die Auflösung kann ja vor dem Gamestart bereits durch den Anwender gesetzt werden. Wenn du zur Laufzeit des Games das Q-Level umstellst musst du diese "Einstellung" selber speichern ;)'

Unity speichert glaube nur die letzte Einstellung des Settings VOR dem Gamestart.
Wenn du Ingame einen Qualitysetting-Dialog hast, würde ich den Dialog vor Gamestart in den Build-Options entfernen. Kann aber auch zu Problemen führen, wenn das Game dann mit den Default-Einstellungen nicht startet ...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich vermute mal hier muss man ganz genau aufpassen, welches Q- und A-Setting man als Default-Setting wählt. Weil wenn der Anwender auf seiner Plattform das Game nicht gestartet bekommt (weil die Auflösung zu hoch ist oder der Q-Setting). Dann kann er das Q-Setting Ingame ja niemals umstellen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich denke man kann alles nachträglich ändern.

Eine mögliche Lösung wäre, wenn du den Launcher wegnimmst, einen QualitySettings-UI-Einstiegsdialog vors eigentliche Game zu packen für die A- und Q-Spieleinstellungen, damit bist du den Unitylauncher los und das Spiel startet in jedem Fall, weil der UI-Einstiegsdialog Low-Quality hat.
Hat zudem den Vorteil, man kann im Hintergrund auch schon einmal Sachen vorladen und der Spieler wählt nebenbei seine gewünschten Settings aus.

Zusätzlich könnte man ein PlayerPref-Setting ins Spiel packen, um zu prüfen, ob der Spieler sein Spiel zerschossen hat, wenn ja, wird das Spiel wieder in die Werkseinstellungen zurückgesetzt ...

Man kann ja prüfen, ob der Spieler eine bestimmte Szene überhaupt erfolgreich geladen hat und wenn nicht, dann geht man davon aus das Setzen der Settings hat das Spiel "zerschossen".

Sind jetzt aber alles Überlegungen auf hohem Level, normalerweise muss man ein Spiel nicht so stabil gestalten ;)
Ich denke Unity bietet dem Spieler eh nur Settings an (z.b. Auflösungen) die sein System auch unterstützt.
Aber den Q-Settings-Dialog in einer geringen Auflösung und Quality zu fahren ist denke ich keine schlechte Idee, damit ist der 1. Dialog des Spiels schnell geladen und man stellt sicher, daß dieser Dialog immer angezeigt werden kann. Wenn der Spieler das Setting einmal umgestellt hat, kann man diesen Dialog auch in einer höherem Auflösung fahren ... Man kann ja notfalls die PlayerPrefs des Spielers zurücksetzen (auch manuell).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habs nun mit Launer gemacht und in der Awake Methode der Hauptmenüsteuerung lese ich mir nun alle relevanten Werte aus und trags sie in die Einstellungsfelder ein. Damit kann der Spieler auch intern noch an der Auflösung / Qualität herum spielen, wie er will. :)  Schön wäre es halt, wenn die Einstellungswerte das nächste mal beim Spielstart im Launcher als Default Werte eingetragen würden. Muss mal schauen, ob das möglich ist.

Nebenfrage: Antialising, bis wohin unterstützt das Unity, hast du da ne Ahnung? Hab zwar mir erlesen können Getter und Setter funtkionieren, jedoch wie hoch? 0, 2, 4 und 8?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Warum Speicherst du die Werte nich in einer Datei ab und Lädst die am start?

Habe das auch gemacht und Klappt 1a, Das mit AA würde mich auch Interessieren, Bei mir wollte es nie Wirklich gehen.

Was ich nur noch nicht hatte ein Menü für Steuerrungs einstellungen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...