2017-01-02 1 views
1

私のオブジェクトはランダムな方向を選択し、回転してしばらくそれを続けます。その後、もう一度繰り返す。ここでは、実際の回転角度がランダムに選ばれた角度ではありません見ることができるように上記のコードは、コンソールに私の回転は変わっています

38.12973 : 38.12972 

283.771 : 321.9007 

295.227 : 257.1267 

142.9637 : 40.09043 

178.7077 : 218.7981 

126.3595 : 345.1576 

347.749 : 332.9065 

250.1977 : 223.1042 

243.5038 : 106.608 

252.1878 : 358.7958 

20.00817 : 18.804 

を次の出力が生成さ方向

private void ChooseDirection() { 
    // create a random angle from 0.0 to 360.0, Remap is a simple function for it 
    float angle = Utils.Remap (Random.value, 0.0f, 1.0f, 0.0f, 360.0f); 
    transform.Rotate (Vector3.up, angle); 
    print (angle + " : " + transform.rotation.eulerAngles.y); 

} 

を選択するための私のコードです。その結果、私のオブジェクトは、それが動いている方向に向いていません。

+0

ローテーションを設定していません。あなたは回転しています。 (つまり、選択した回転をトランスフォームの既存の回転に追加する) – Abion47

+0

コードを変更しました。角度が変更されました。私はまだオブジェクトが間違った方向に向いているという問題を抱えています。私は0,10,45,90などの既知の値に角度を設定しようとし、どのように動くか見る。 – sasha199568

+0

私の問題が見つかりました。 'Translate'関数では' transform.forward'を使用しました。私は 'Vector3.forward'を使っていたはずです。私の悪い、あなたは私の移動するコードを投稿しなかったので、私の問題を解決することができなかった – sasha199568

答えて

3

現在、回転を設定していないだけでオブジェクトを回転させています。 transform.Rotate(...)の代わりに、

transform.rotation = Quaternion.Euler(0, 0, angle); 
関連する問題