Unity3DFreak Geschrieben 29. Juni 2015 Melden Share Geschrieben 29. Juni 2015 Hallo, Ich versuche mich grade an einem Pausenmenü Skript, ein Menü zu öffnen ist nicht das Problem ich schaffe es nicht alles zu pausieren. Ich hätte es gerne so ähnlich wie wenn man in Unity während mach spielt den Pausebutton drückt, und man einzelne Objekte als Ausnahme hinzufügen kann die nicht beeinflusst werden. Ich befürchte zwar das dies nicht so einfach ist wie es klingt, aber vielleicht kann mir ja jemand in die richtige Richtung helfen . Mit freundlichen Grüßen Unity3DFreak PS: Ich möchte nicht einfach irgendwelche Skripte vorgeschrieben haben denn 1. Ich weiß das ist viel Arbeit je nachdem was man machen möchte, und 2. möchte ich auch halbwegs verstehen warum das jetzt so und so funktioniert. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Tiwaz Geschrieben 29. Juni 2015 Melden Share Geschrieben 29. Juni 2015 Ich habs zwar noch nicht selber probiert aber soll ja anscheinend funktionieren ^^ http://answers.unity3d.com/questions/7544/how-do-i-pause-my-game.html Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sicho Geschrieben 30. Juni 2015 Melden Share Geschrieben 30. Juni 2015 einfach Time.timeScale auf 0 setzen und nicht vergessen danach wieder auf 1 zu setzen Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Unity3DFreak Geschrieben 30. Juni 2015 Autor Melden Share Geschrieben 30. Juni 2015 Hallo, Danke für die Hilfe habe jetzt mal ein Skript geschrieben und wollte fragen ob man das als Pausemenü Skript verwenden kann oder ob ich irgendwas ändern muss. using UnityEngine; using System.Collections; public class PauseMenue : MonoBehaviour { bool menueOffen = false; void Update () { if(Input.GetKeyUp(KeyCode.Escape) && !menueOffen) { Time.timeScale = 0; menuOffen = true; } if(Input.GetKeyUp(KeyCode.Escape) && menueOffen) { Time.timeScale = 1; menueOffen = false; } } } Bei allen anderen Update funktionen in den anderen Skripten habe ich noch ein if(time.timeScale != 0){CODE} hoffe ich kann das so machen ohne das etwas beeinträchtigt wird Mit freundlichen Grüßen Unity3DFreak Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 30. Juni 2015 Melden Share Geschrieben 30. Juni 2015 Man kann da noch ein bisschen was verkürzen. Dein zurueckZumSpiel macht ja die exakt den einen Fall von deinem Update. Du kannst die Funktion also umschreiben zu public void SetMenuState(bool on) { menueOffen = on; PauseCanvas.SetActive(on); Time.timeScale = on ? 0 : 1; } Deine Update-Funktion ließe sich dann reduzieren auf if(Input.GetKeyUp(KeyCode.Escape)) { SetMenuState(!menueOffen); } Außerdem: Statt drei Variablen zu erstellen, die eine Position darstellen, warum nicht einfach einen Vector3? Dafür sind die Dinger nämlich da. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Unity3DFreak Geschrieben 30. Juni 2015 Autor Melden Share Geschrieben 30. Juni 2015 Danke dann werde ich das vermutlich umbauen aber ich weiß leider nicht wie ich einen Vector3 in PlayerPrefs speichern soll gibt es da eine Möglichkeit? Mit freundlichen Grüßen Unity3DFreak Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 30. Juni 2015 Melden Share Geschrieben 30. Juni 2015 Du kannst einfach überall statt SpielerPositionX spielerPosition.x schreiben. Um das dann etwas schöner zu machen, kannst du zum Laden und Speichern eines Vektors Methoden schreiben: public static void SetVector3(string key, Vector3 value) { PlayerPrefs.SetFloat(key + ".X", value.x); PlayerPrefs.SetFloat(key + ".Z", value.y); PlayerPrefs.SetFloat(key + ".Y", value.z); } public static Vector3 GetVector3(string key) { return new Vector3( PlayerPrefs.GetFloat(key + ".X"), PlayerPrefs.GetFloat(key + ".Z"), PlayerPrefs.GetFloat(key + ".Y")); } und dann diese aufrufen wie du es von PlayerPrefs kennst. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Unity3DFreak Geschrieben 30. Juni 2015 Autor Melden Share Geschrieben 30. Juni 2015 Achso ok danke dann werde ich das mal ein wenig umschreiben Danke an euch alle Mit freundlichen Grüßen Unity3DFreak Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Ismoh Geschrieben 1. Juli 2015 Melden Share Geschrieben 1. Juli 2015 Ist eventuell fehl am Platz, aber slow-motion wäre dann Time.timeScale = 0.1; //als Beispiel 0,1[/Code]? 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.