2016-10-13 2 views
0

私のカメラには、QやEを押すたびに45度回転しているカメラを作ろうとしていますが、なんらかの理由でそれを動作させることはできません。私はC#を使用しています。Unity3dカメラの回転がうまくいかない

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); 
     } 
    } 
} 

答えて

3

あなたは

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); 
    } 

を回転させたときに、左たい場合は、これは、それが見上げると上下させると、右次

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); 
    } 

重要な側面ノートを使用して掛けてください

ユーザーが押さえている間にtrueを返します。非常に速いプレスでも、カメラがまだ複数のフレームであるために制御不能になっているように見えます。あなたはおそらくGetKeyDownを使用したいと思います。ユーザーがキーを押すたびに1度だけtrueを返します。

+0

いいえ、それをちょっと変えて、iveでもC#ではなくjavascriptに設定してください。しかし、キャラクターの周りを回転するのではなく、カメラが回転しています。固定小数点の周りを回転させる方法を知っていますか? –

関連する問題