Ismoh Geschrieben 1. September 2014 Melden Share Geschrieben 1. September 2014 Ich hab bei meine 2D SideScroller folgendes Problem: Ich bewege den Player über die Update- und die CharacterController.Move-Methode. Wenn ich nun die Scene starte habe ich bei der Fantastic-Quality 70-90Fps. Wenn ich aber über meim Options-Menü die Quality auf Fastest stelle(300-1000Fps), springt der Player nicht mehr so hoch wie bei der Fantastic-Quality, weil ich in der Update-Methode die Gravity von der y-Koordinate abziehe. Da die Update-Methode je nach Einstellung schneller durchläuft, frage ich mich, ob die Update-Methode die richtige ist. Hab ich ggf iwas falsch verstanden ? Sollte ich die Bewegung über fixedUpdate realisieren, oder, oder, oder einfach die Quality auf Fantastic lassen ? Aber je nach Hardware ist auch diese Realisierung eher fehlerbehaftet, da der Spieler schon eine gewisse Höhe springen können muss, um über die Blöcke springen zu können. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Damon93 Geschrieben 1. September 2014 Melden Share Geschrieben 1. September 2014 in die FixedUpdate kommen alle Physikalischen Elemente, da ich meine das die FixedUpdate noch mal ein tick öfter als die Update aufgerufen wird. Das heißt ich bin stark für die FixedUpdate bei deinem problem Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Ismoh Geschrieben 1. September 2014 Autor Melden Share Geschrieben 1. September 2014 Das klingt doch schonmal gut , jedoch stellt sich direkt eine neue Frage: Benutze ich dann immer noch "speed * Time.delta" ? Eher Time.fixedDeltaTime, richtig ? Falls ja, freue ich mich, da ich es langsam begreife ! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Damon93 Geschrieben 1. September 2014 Melden Share Geschrieben 1. September 2014 The interval in seconds at which physics and other fixed frame rate updates (like MonoBehaviour's FixedUpdate) are performed. For reading the delta time it is recommended to use Time.deltaTime instead because it automatically returns the right delta time if you are inside aFixedUpdate function or Update function. Note that the fixedDeltaTime interval is with respect to the in-game time affected by timeScale Quelle: http://docs.unity3d....dDeltaTime.html Das dürfte deine Frage beantworten. Falls nicht, ich selber benutze immer in der FixedUpdate Time.deltaTime, und es hat bisher immer super funktioniert Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 2. September 2014 Melden Share Geschrieben 2. September 2014 Ich habe da vor einiger Zeit mal was geschrieben: http://forum.unity-community.de/topic/2445-zeitliche-ablaufe-und-wie-halte-ich-sie-konstant/ Lesen! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Ismoh Geschrieben 2. September 2014 Autor Melden Share Geschrieben 2. September 2014 Danke Leute, nun weiß ich wann ich welche Methode nutzen muss. EDIT: mhh.. Die Logik habe ich nun verstanden. Problem ist nur, dass der Player nun stottert. Ich vermute, da die feste Zeit die für FixedUpdate-Methode irgendwie zu hoch ist ? Oder liegt das nun an etwas anderem ? Also: Ich prüfe in der Update-Methode die Key-Inputs und setze ebenfalls die Animationen in der Update-Methode. In der FixedUpdate-Methode habe ich nun den CharacterController, bzw den Player (das GameObject) und bewege dieses mit der characterController.Move-Methode. Ich schau mir mal eben die Move-Methode in der API an. Okey. Attempts to move the controller by motion, the motion will only be constrained by collisions. It will slide along colliders. CollisionFlags is the summary of collisions that occurred during the Move. This function does not apply any gravity. Das heißt also, dass ich die Move-Methode immer noch in der Update-Methode abfangen soll und die Neuberechnung der Gravity in der FixedUpdate-Methode aktualisiere? Richtig ? EDIT2: InputCheck(); Move(); SetAnimation(); Sind nun in der Update-Methode und void FixedUpdate() { moveDirection.y -= gravity; } berechnet die y-Koordinate durch die Aniehungskraft neu. Funktioniert wunderbar. Hoffentlich ist das auch so richtig ?! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Damon93 Geschrieben 2. September 2014 Melden Share Geschrieben 2. September 2014 na wenn es so wunderbar funktioniert dann passt doch alles ich muss ehrlich sagen ich hab noch NIE mit dem Character Controller gearbeitet^^ ich code meine Movements und Kamera steuerung immer selber... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Ismoh Geschrieben 3. September 2014 Autor Melden Share Geschrieben 3. September 2014 Stimmt schon Danke für die Hilfe. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Damon93 Geschrieben 3. September 2014 Melden Share Geschrieben 3. September 2014 kein problem 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.