@@ -63,34 +63,36 @@ public static void Create(string filename, ImportSettings settings)
6363 Undo . RegisterCreatedObjectUndo ( robotGameObject , "Create " + robotGameObject . name ) ;
6464 Selection . activeObject = robotGameObject ;
6565
66- CorrectAxis ( robotGameObject , settings . choosenAxis ) ;
66+ CorrectAxis ( robotGameObject ) ;
6767 CreateCollisionExceptions ( robot , robotGameObject ) ;
6868 }
6969
70- public static void CorrectAxis ( GameObject robot , ImportSettings . axisType axis = ImportSettings . axisType . yAxis )
70+ public static void CorrectAxis ( GameObject robot )
7171 {
72- UrdfVisual [ ] visualMeshList = robot . GetComponentsInChildren < UrdfVisual > ( ) ;
73- UrdfCollision [ ] collisionMeshList = robot . GetComponentsInChildren < UrdfCollision > ( ) ;
7472 UrdfRobot robotScript = robot . GetComponent < UrdfRobot > ( ) ;
73+ if ( robotScript . CheckOrientation ( ) )
74+ return ;
75+ Quaternion correctYtoZ = Quaternion . Euler ( - 90 , 0 , 90 ) ;
76+ Quaternion correctZtoY = Quaternion . Inverse ( ( correctYtoZ ) ) ;
77+ Quaternion correction = new Quaternion ( ) ;
7578
76- robotScript . choosenAxis = axis ;
77- Quaternion correctZtoY = Quaternion . Euler ( - 90 , 0 , 90 ) ;
78- Quaternion correction = Quaternion . identity ;
79-
80- if ( axis == ImportSettings . axisType . zAxis )
79+ if ( robotScript . choosenAxis == ImportSettings . axisType . zAxis )
80+ correction = correctYtoZ ;
81+ else
8182 correction = correctZtoY ;
8283
83-
84+ UrdfVisual [ ] visualMeshList = robot . GetComponentsInChildren < UrdfVisual > ( ) ;
85+ UrdfCollision [ ] collisionMeshList = robot . GetComponentsInChildren < UrdfCollision > ( ) ;
8486 foreach ( UrdfVisual visual in visualMeshList )
8587 {
86- visual . transform . localRotation = correction ;
88+ visual . transform . localRotation = visual . transform . localRotation * correction ;
8789 }
8890
8991 foreach ( UrdfCollision collision in collisionMeshList )
9092 {
91- collision . transform . localRotation = correction ;
93+ collision . transform . localRotation = collision . transform . localRotation * correction ;
9294 }
93-
95+ robotScript . SetOrientation ( ) ;
9496 }
9597
9698 private static void CreateCollisionExceptions ( Robot robot , GameObject robotGameObject )
0 commit comments