2016-10-13 3 views
0

Ich versuche, meine Kamera zu machen, die an meinem Player klebt, drehe um 45 Grad, wenn ich Q oder E drücke, aber aus irgendeinem Grund kann ich es nicht zur Arbeit bringen. Ich benutze C#.Unity3d Kamerarotation funktioniert nicht

using UnityEngine; 
using System.Collections; 
public class Camera : MonoBehaviour 
{ 
    int rotatespeed = 3; 
    int rotationstart = 90; 

    public GameObject player; 

    private Vector3 offset; 

    // Use this for initialization 
    void Start() 
    { 
     offset = transform.position - player.transform.position; 
    }  

    // Update is called once per frame 
    void LateUpdate() { 
      transform.position = player.transform.position + offset; 
    } 

    void Update() 
    { 
     if (Input.GetKey("q")) 
     { 
      Camera.main.transform.rotation = Quaternion.Euler(x + 45 , y, z); 
     } 
     if (Input.GetKey("e")) 
     { 
      Camera.main.transform.rotation = Quaternion.Euler(x - 45, y, z); 
     } 
    } 
} 

Antwort

3

sollten Sie multiplizieren, wenn

rotierenden
if (Input.GetKey("q")) 
    { 
     Camera.main.transform.rotation *= Quaternion.Euler(45 , 0, 0); 
    } 
    if (Input.GetKey("e")) 
    { 
     Camera.main.transform.rotation *= Quaternion.Euler(-45, 0, 0); 
    } 

Doch diese es und nach unten schauen machen, wenn Sie links wollen und rechts verwenden Sie die folgende

if (Input.GetKey("q")) 
    { 
     Camera.main.transform.rotation *= Quaternion.Euler(0, 45, 0); 
    } 
    if (Input.GetKey("e")) 
    { 
     Camera.main.transform.rotation *= Quaternion.Euler(0, -45, 0); 
    } 

Wichtige Randnotiz

Denken Sie daran, dass GetKey kehrt wahr zurück, während der Benutzer es niederhält, was selbst bei einem sehr schnellen Druck dazu führt, dass Ihre Kamera scheinbar außer Kontrolle gerät, da sie immer noch mehrere Frames enthält. Sie möchten wahrscheinlich GetKeyDown verwenden, die nur einmal jedes Mal wahr zurückgibt, wenn der Benutzer die Taste

+0

in Ordnung, ive änderte es ein bisschen, ive setzte es auch auf Javascript anstelle von C#. aber jetzt dreht sich die Kamera, anstatt dass sie sich um den Charakter dreht. Weißt du, wie man es um einen festen Punkt dreht? –

Verwandte Themen