Jump to content
Unity Insider Forum

Geschwindigkeit im Gameview erhöhen / Vorspulen?


KaBau

Recommended Posts

Hi, kann man die Anzeigegeschwindigkeit im Gameview Fenster schneller einstellen bzw. eine Art "Vorspulen" durchführen?
Hintergrund: ich erstelle einen Space Shooter. Um nun die einzelnen Angriffwellen einzustellen nehem ich immer kleine Änderungen an den Bewegungen der Gegner vor. Wenn ich testen will, ob diese Bewegungen passen muss ich bei späten Gegnern erst immer das Level soweit durchlaufen lassen.

Ich würde amsonsten ein Scrpit erstellen, welches die Geschwindigkeit erhöht (z.B. bei Drücken der Taste S für schnell), aber geht das auch mit den Unity Bordmitteln? Oder kann man im Gameview irgendwie einen Punkt anwählen, damit der Gegner / das Spiel direkt dorthin wandert?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nein, in Vanilla gibt's da nichts für. Einfach an einen anderen Zeitpunkt zu springen ist nicht möglich, da je nach Simulation und Input da etwas komplett anderes rauskommen kann. Vorspulen mit Time.timeScale geht, das kannst du auch als Editor-Script bauen, dann musst du es nicht zum Testen in deine Szene integrieren.

Wirklich gut wäre ein System, mit dem du einfach auswählen kannst, welche Welle jetzt spawnt, statt dass du dafür erstmal alle anderen Wellen überspringen musst. So ein System ist natürlich aber zu aufwendig für kleinere Projekte.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 month later...

Weshalb funktioniert nicht das folgende Script, welches ich hierfür erstellt habe?

public class GameviewFast : MonoBehaviour
{
    public float gameviewSpeed = 3.0f;

	void Update ()
    {
		if (Input.GetKeyDown(KeyCode.F1))
        {
            Time.timeScale = gameviewSpeed;
            Debug.Log("Schnell");
        }

        if (Input.GetKeyDown(KeyCode.F2))
        {
            Time.timeScale = 1;
            Debug.Log("Normale Geschwindigkeit");
        }
    }
}

In der Console wird der Text richtig angezeigt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

"Funktioniert nicht" ist niemals eine ausreichende Fehlerbeschreibung. Wenn da nicht zufällig ein super-auffälliger Fehler im Code ist, kann dir keiner helfen, wenn du nicht beschreibst, was passiert oder nicht passiert.

Der Code sieht jedenfalls soweit in Ordnung aus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 6.7.2018 um 11:58 schrieb Sascha:

"Funktioniert nicht"

Ja, ich hätte mich genauer ausdrücken sollen: Die Geschwindigkeit ändert sich sich. Im Game View läuft die Geschwindigkeit mit 1 weiter. Auch wenn ich mir während des Abspielen des Spiel die Geschwindigkeit im TimeManager anzeigen lasse, ändert sich hier nichts. Ein anderer Code auf meinem Pause Button ändert die Geschwindikgeit:

private void Update()
    {
        if (pauseYes)
        {
            Time.timeScale = 0;
            pauseCredits.SetActive(true);

        }

        else
        {
            Time.timeScale = 1;
            pauseCredits.SetActive(false);
        }
    }

Und hier wird mir im TimeManager auch die geänderte Geschwindigkeit angezeigt.

Ah, jetzt wo ich diesen zweiten Code eingefügt habe: in diesem setzte ich ja die Geschwindigkeit auf 1, ausser der Pause Button wird gedrückt. Somit kann mein anderes Script die Geschwindigkeit gar nicht ändern. Ich muss die Funktion des GameviewFast Script in das Script des Pause Button integrieren.

Das ist das Tolle an diesem Forum: beim Versuch das eigene Problem zu erklären denkt man noch einmal "von einer anderen Seite" und kommt manchmal selber auf die Lösung.
Ich habe das Pause Button Script nun angepasst und alles läuft so wie es sein soll. Danke.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...