Jump to content
Unity Insider Forum
KaBau

Geschwindigkeit im Gameview erhöhen / Vorspulen?

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?

Share this post


Link to post
Share on other sites

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.

  • Thanks 1

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

"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.

  • Like 1

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×