0
Wenn ich das 'w' drücke und die Kamera verschiebe, bewegt sich der Player nicht in die Kamerarichtung, zB wenn ich vorwärts gehe und die Kamera nach links verschiebe würde sie nicht gehen auf der linken Seite, aber mach weiter, was sind einige Möglichkeiten, dies zu beheben. Spieler Bewegung ScriptDer Player bewegt sich nicht dort, wo die Kamera steht
public float movementspeed = 5.0F;
// Use this for initialization
void Start() {
Cursor.lockState = CursorLockMode.Locked;
}
// Update is called once per frame
void Update() {
float translation = Input.GetAxis("Vertical") * movementspeed;
float straffe = Input.GetAxis("Horizontal") * movementspeed;
translation *= Time.deltaTime;
straffe *= Time.deltaTime;
transform.Translate(straffe, 0, translation);
}
}
und Kamera-Ansicht Script
public float xMoveThreshold = 1000.0f;
public float yMoveThreshold = 1000.0f;
public float yMaxLimit = 50.0f;
public float yMinLimit = -50.0f;
float yRotCounter = 0.0f;
float xRotCounter = 0.0f;
Transform player;
void Start()
{
player = Camera.main.transform;
}
// Update is called once per frame
void Update()
{
xRotCounter += Input.GetAxis("Mouse X") * xMoveThreshold * Time.deltaTime;
yRotCounter += Input.GetAxis("Mouse Y") * yMoveThreshold * Time.deltaTime;
yRotCounter = Mathf.Clamp(yRotCounter, yMinLimit, yMaxLimit);
//xRotCounter = xRotCounter % 360;//Optional
player.localEulerAngles = new Vector3(-yRotCounter, xRotCounter, 0);
}
}
Ich befestigte das erste Skript an die Kamera, und das zweite Skript leer Spielobjekt. Ich konnte die Kamera bewegen und drehen. Die Bewegung ist in Ordnung. Es bewegt sich immer in die Richtung, in die die Kamera zeigt. Was ist das Problem, das du hast? – Programmer
Sprich, ich schaue nach links und drücke 'w', es wird nicht nach links gehen. Die Bewegungsrichtung wird sich mit der Kamera nicht ändern, und egal, wie ich es sehe, es wird auf eine bestimmte Art und Weise gehen, wie wenn ich nach vorne schaue und 'w' drücke und die Kamera nicht berühre, wird es gehen Gerade, aber wenn ich die Kamera zurück schaue und 'w' drücke, würde es rückwärts gehen. – Johnny
Mit dem Bild, das du in deiner Frage aktualisiert hast, ** setze keine Kamera unter das GameObject. Mach es andersherum. Machen Sie diesen Player zu einem Kind der Kamera und hängen Sie beide Skripte an die Kamera an, die nun das übergeordnete Objekt des Players ist. – Programmer