@@ -210,15 +210,23 @@ internal static StringBuilder JoinStringList(StringBuilder sb, IEnumerable<strin
210210 }
211211
212212 internal static Quaternion QuaternionField ( string label , Quaternion value , params GUILayoutOption [ ] options ) {
213- var cValue = new Vector4 ( value . x , value . y , value . z , value . w ) ;
214- cValue = EditorGUILayout . Vector4Field ( label , cValue , options ) ;
215- return new Quaternion ( cValue . x , cValue . y , cValue . z , cValue . w ) ;
213+ var cValue = value . eulerAngles ;
214+ var changed = GUI . changed ;
215+ GUI . changed = false ;
216+ cValue = EditorGUILayout . Vector3Field ( label , cValue , options ) ;
217+ if ( GUI . changed ) return Quaternion . Euler ( cValue ) ;
218+ GUI . changed = changed ;
219+ return value ;
216220 }
217221
218222 internal static Quaternion QuaternionField ( Rect position , string label , Quaternion value ) {
219- var cValue = new Vector4 ( value . x , value . y , value . z , value . w ) ;
220- cValue = EditorGUI . Vector4Field ( position , label , cValue ) ;
221- return new Quaternion ( cValue . x , cValue . y , cValue . z , cValue . w ) ;
223+ var cValue = value . eulerAngles ;
224+ var changed = GUI . changed ;
225+ GUI . changed = false ;
226+ cValue = EditorGUI . Vector3Field ( position , label , cValue ) ;
227+ if ( GUI . changed ) return Quaternion . Euler ( cValue ) ;
228+ GUI . changed = changed ;
229+ return value ;
222230 }
223231
224232 internal static object EnumField ( Rect position , GUIContent label , Type type , object value ) {
0 commit comments