2016-04-08 2 views
-1

Можно ли повернуть объект игры, применив к нему матрицу вращения. Вместо того, чтобы проходить каждый угол и вращать его.Поворот gameObject, применяя матрицу вращения в единстве3d

Я пытался использовать GL.MultMatrix() но нет никакого движения в игре Объект

Код sinppet:

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

выше фрагмент кода в update() функции. Документы говорят, что GL.MultMatrix() похож на glMultMatrix в opengl library.Which мы можем использовать в openGl для поворота вправо !!

Если есть какой-либо способ достижения этого, пожалуйста, укажите. Спасибо

+0

Из документа «Команды рисования GL» выполняются немедленно. Это означает, что если вы вызовете их в Update(), они будут выполнены до того, как будет отображена камера (и камера, скорее всего, очистит экран, делая рисунок GL невидимым) «. Вы пытались поместить это в OnPostRender()? – Roknus

+0

Я ничего не рисую на сцене, просто пытаюсь повернуть игру Object, и я прикрепил этот скрипт к игре Object. Я попробовал OnPostRender() тоже не работал – djkp

+0

Не думаю, что вы можете сделать это так, потому что здесь вы просто нажимаете матрицу, не присваивающую ее gameObject и AFAIK, нет функции, которая позволяет это с GL. – Roknus

ответ

0

Я не уверен, чего вы пытаетесь достичь, но используя GL для вращения, вероятно, не очень хорошая идея. Вы видели Matrix4x4?

Я не знаю матриц, но могу вам сказать GL работает с несколько иной логикой. Вы должны вручную нарисовать свои вещи между командами MultMatrix() и PopMatrix(), используя класс GL (например, GL.Vertex3), который дает вам абсолютный контроль над тем, как вещи визуализируются, но избыточно, как черт.

+0

Я ничего не рисую на сцене, просто пытаюсь повернуть игру Object, указав матрицу вращения и Я прикрепил этот скрипт к этой конкретной игре Object – djkp

+0

@javvajikiran, я согласен с @Nika. Почему бы не попробовать ** Quaternion **, это проще и мощнее. Точно так же: 'tranform.rotation * = Quaternion.AngleAxis (, transform.right); // или Vector3.right' [Wiki Quaternion] (https://en.wikipedia.org/wiki/Quaternion) – tim

+0

Да, но могу я знать, почему приведенный выше код не работает – djkp

Смежные вопросы