2017-08-29 14 views
0

私は比較的簡単な問題だと思っていたもののロードブロッキングを乗り越えています。私は、 "Q"と "E"キーを押して、カメラをz軸上で "ロール"したいと思います。ここでキーボードを使ってカメラをz軸上で回転させる

は私のカメラオブジェクトに添付されて私が書いたコードを、次のとおりです。

#pragma strict 

var keyboardSensitivity : float = 10.0f; 
private var rotZ : float; 
private var localRotation : Quaternion; 

function Start() { 
    rotZ = 0.0f; 
} 

function Update() { 
    if(Input.GetKey(KeyCode.Q)) { 
     rotZ += Time.deltaTime * keyboardSensitivity; 
     localRotation = Quaternion.Euler(0.0f, 0.0f, rotZ); 
     transform.rotation = localRotation; 
    } 
    if(Input.GetKey(KeyCode.E)) { 
     rotZ -= Time.deltaTime * keyboardSensitivity; 
     localRotation = Quaternion.Euler(0.0f, 0.0f, rotZ); 
     transform.rotation = localRotation; 
    } 
} 

私の知識に基づいて、これは必要とされているすべてでなければなりません。しかし、QキーまたはEキーを押すと、何も起こりません。どうして?

+0

「何も起こらない」とは言わないでください。このコードは 'localRotation'が宣言されていないのでコンパイルすべきではありません。 [Unityscript](https://stackoverflow.com/questions/45523239/is-unityscript-javascript-discontinued?s=1|5.6699)が廃止されたことは注目に値する。スイッチを切り替えてC#の質問を開始することができます。 – Programmer

+0

文字通り何も起こらないので、「何も起こらない」と言います。私はこの質問をしていたときに 'localRotation'をコピーするのを忘れましたが、コードはうまくコンパイルされます。私はUnityscriptを個人的な好みとして使用していますが、私が今直面している問題の原因はC#を使用していないとは考えていませんが、将来の質問ではそのことを覚えています。 – JavascriptLoser

+0

私はここでコンパイルされていないコードを投稿しているのを見ました。だから私はそれもその一つでした。私はあなたの将来の質問のための通知としてC#を述べました。 – Programmer

答えて

0

コードがカメラに接続されていないか、別のGameObjectに接続されている可能性があります。他のGameObjectにアタッチすることはできません。 transform.rotationを参照しているため、スクリプトが添付されている現在のGameObjectに影響しますので、カメラにアタッチする必要があります。

カメラを選択してスクリプトをドラッグしてください。 「再生」をクリックし、QまたはEボタンを押します。カメラが回転するはずです。 Unity project tutorialsを本当にお勧めします。

+0

私はこの問題がZ回転を妨げる別のコードであることを発見しましたが、私は受け入れられたものとしてマークします。 – JavascriptLoser

+0

これは、zが別のスクリプトから変更されている場合、別の理由が考えられます。これは、カメラに接続されていないか、別のゲームオブジェクトにアタッチされていないためです。 – Programmer

関連する問題