/ / unity3d. Jak uzyskać wynik transform.rotate bez faktycznej zmiany Gameobjects transform - rotacja, unity3d, quaternions

unity3d. Jak uzyskać wynik transform.rotate bez faktycznej zmiany transformacji gameobjects - rotation, unity3d, quaternions

W Unity3d wprowadzam pozycję transformacji,obracanie i skalowanie w Matrix4x4 w celu narysowania niektórych gadżetów. Chciałbym, aby czwartorzęd rotacji wprowadzony do matrycy został obrócony o określoną liczbę kątów eulera (Kąt) To jest moja próba, tworzę kopię transformacji (temp), wywołuję na niej rotate (), a następnie przekazuję jej czwartorzędowy obrót do macierzy.

    Transform temp = transform;
temp.Rotate(new Vector3(0f,0f,Angle));
Matrix4x4 rotationMatrix = Matrix4x4.TRS(transform.position,temp.rotation,transform.lossyScale);

Niestety, kiedy to robię, faktycznie obraca oryginalną transformację, a nie tylko jej tymczasową kopię, jak zamierzałem. Jak mogę dodać pewną wartość obrotu kąta eulera do czwartorzędu?

Odpowiedzi:

0 dla odpowiedzi № 1

Myślę, że odpowiedziałem na to pytanie, ale tak naprawdę to nie rozwiązuje mojego problemu ...

 Matrix4x4 rotationMatrix = Matrix4x4.TRS(transform.position,transform.rotation*Quaternion.AngleAxis(Angle,Vector3.forward),transform.lossyScale);