2016-04-08 26 views
-1

回転行列を適用してゲームオブジェクトを回転することは可能ですか?それぞれの角度を渡して回転させるのではなく、unity3dで回転行列を適用してgameObjectを回転

私はGL.MultMatrix()を使用しようとしたが、何の動きはゲームオブジェクトではありません

コードsinppet:

GL.PushMatrix(); 
    GL.MultMatrix(m); 
    GL.PopMatrix(); 

上記のスニペットはupdate()機能です。ドキュメントGL.MultMatrix()は、OpenGLライブラリのglMultMatrixと似ていますが、openGlで右回転することができます。

これを達成する方法がある場合は、この点をご説明ください。 ありがとう

+0

docから "描画コマンドがすぐに実行されます。つまり、Update()で呼び出すと、カメラがレンダリングされる前に実行されます(カメラが画面をクリアしてGL描画を表示しなくなる)。 "あなたはそれをOnPostRender()に入れようとしましたか? – Roknus

+0

私はシーン上に何も描かず、ゲームオブジェクトを回転しようとしていますが、このスクリプトをゲームオブジェクトにアタッチしました。OnPostRender()も試してみましたが動作しませんでした – djkp

+0

ここでは、あなたはそれをgameObjectとAFAIKに割り当てていない行列をプッシュするだけで、GLでそれを可能にする関数はありません。 – Roknus

答えて

0

私はあなたが達成しようとしていることはわかりませんが、GLをローテーションするのはおそらく良い考えではありません。あなたは見たことがありますMatrix4x4

行列はよくわかりませんが、私はあなたに教えてくださいGLはわずかに異なるロジックで動作します。 GLクラス(GL.Vertex3など)を使用してMultMatrix()PopMatrix()コマンドの間に手作業で描画する必要があります。これは、オブジェクトの描画方法を完全に制御できますが、冗長です。

+0

私はシーン上に何も描画していません。回転行列を与えてゲームオブジェクトを回転しようとしています。私はその特定のゲームにこのスクリプトを添付しました。オブジェクト – djkp

+0

@javvajikiran、私は@Nikaに同意します。 ** Quaternion **を試してみてはいかがですか?それはよりシンプルで強力です。 ちょうどのように: 'tranform.rotation * = Quaternion.AngleAxis(、transform.right); //またはVector3.right' [Wiki Quaternion](https://en.wikipedia.org/wiki/Quaternion) – tim

+0

ええ、私は上記のコードが機能しない理由を知っているかもしれません。 – djkp

関連する問題