2016-10-10 9 views
1

私は2つの部分からなる銃を持っています(1はハンドル、2はノズルです)。私はターゲットを撃つときにノズルを回転させたい。オブジェクトはその軸を中心に回転しません

I want to rotate the Nozzle like this

それは回転値が増加している

gunNozzle.transform.Rotate(0, 0, 10); 

私は私の火災関数内の行の次のコードを使用していますが、結果は異なっています。ここには完全な機能があります:

void Update() 
{ 
    if (Input.GetKeyDown(KeyCode.P)) 
    { 
     isOut = true; 
    } 
    if (isOut) 
    {  
     playerAnim.CrossFade("gunplays", 0.03f); 
     gunNozzle.transform.Rotate(0, 0, 10); 
     audioSource.Play(); 
     GameObject cloneArrow = (GameObject)Instantiate(theArrow, thePos, Quaternion.identity); 
     cloneArrow.transform.position = thePos; 
     cloneArrow.transform.rotation = this.transform.rotation; 
     isOut = false; 
    } 
} 

簡単なことですが、私は立ち往生しています。 transform.Rotateへのあなたのパラメータは、私には正しく見えるしていない

Here is the result of the above code

+0

「結果はどういう意味ですか?」とはどういう意味ですか? – Sayse

+0

は、ノズルに回転がないことを意味し、結果も追加しました。一度チェックしてください。 –

+0

私の最初のGIFが表示されたら、インターフェイスを手動で回転すると、 'z'の値が増加し、 xの位置とyの位置も変化しています。 –

答えて

0

:ここ

は結果です。

gunNozzle.transform.Rotate(Vector3.right * Time.deltaTime); 

Nb:私の例ではベクトルの方向が間違っている可能性があります。

+0

また、gunNozzleが正しいオブジェクトに設定されていることを確認していますが、画面外で何か回転していないのでしょうか? –

+0

申し訳ありませんが、私のレーザーの方向はある程度変更されています。私は別の方向でも試しました...結果はありません。 –

+0

gunNozzle.SetActive(false);これは銃身を隠すはずです。そうでない場合、 'gunNozzle'オブジェクトが正しいオブジェクトに設定されていない(またはそのコードが起動していない - おそらくコンソールログステートメントを追加してみてください) –

0

Rotate()内にSpace.SelfまたはSpace.Worldのいずれかを含めるようにしてください。

関連する問題