YGOFreak1997 Geschrieben 5. Dezember 2011 Melden Share Geschrieben 5. Dezember 2011 Hallo, Leute, ich habe ein kleines Problemchen mit meinem First Person Controller. Naja, hier ist erstmal sein bisheriger Code ^^ var Speed : float = 10.0; var BoostedSpeed : float = 10.0; var JumpSpeed : float = 10.0; var Gravity : float = 20.0; private var controller : CharacterController; private var dir : Vector3 = Vector3.zero; controller = GetComponent(CharacterController); function Update () { if(controller.isGrounded) { dir.x = Input.GetAxis("Horizontal") * Speed; dir.z = Input.GetAxis("Vertical") * Speed; dir.y -= 1; } else { dir.y -= Gravity * Time.deltaTime; } controller.Move(dir * Time.deltaTime); } Dazu habe ich dann noch den Mouselook-Skript aus den Standart Assests zum Drehen des Characters. Das Problem ist jetzt, dass, wenn ich mich drehe (Mit dem Skript) und mich dann bewege, der Character sich quasi immer noch nach dem Weltraster bewegt, anstatt den Ort, auf den Ich schaue, als "Vorne" zu sehen. Also zum Beispiel, wenn ich mich 90 Grad nach rechts drehe und dann auf w drücke, läuft er nach links xD Hat jemand eine Idee, wie ich das behebe? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Hendrik Geschrieben 5. Dezember 2011 Melden Share Geschrieben 5. Dezember 2011 Schlagt mich wenn es die falsche Begründung ist ;D Du benutz gerade world coordinates. Diese haben nichts mitr der Rotation zu tun, ein objekt wird sich bei y++; immer auf der y-Achse bewegen. var Speed : float = 10.0; var BoostedSpeed : float = 10.0; var JumpSpeed : float = 10.0; var Gravity : float = 20.0; private var controller : CharacterController; private var dir : Vector3 = Vector3.zero; controller = GetComponent(CharacterController); function Update () { if(controller.isGrounded) { dir.x = Input.GetAxis("Horizontal") * Speed; dir.z = Input.GetAxis("Vertical") * Speed; dir.y -= 1; } else { dir.y -= Gravity * Time.deltaTime; } controller.Move(transform.TransformDirection(dir) * Time.deltaTime); } Das sollte funktionieren. Edith fragt, warum du das dir.y -= 1; brauchst oO Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
YGOFreak1997 Geschrieben 5. Dezember 2011 Autor Melden Share Geschrieben 5. Dezember 2011 Wegen irgendwas von wegen Gravität, ich hab das ja aus Saschas Tut ^^ Edit: Okay, es geht jetzt, nach einigem Rumprorieren, danke ^^ 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.