static bool FloatField(string name, ref float value, bool hidden, GUILayoutOption opt)
        {
            float num = value;

            GUI.changed = false;
            if (!hidden)
            {
                num = EditorGUILayout.FloatField(name, num, new GUILayoutOption[] {
                    opt
                });
            }
            else
            {
                float.TryParse(EditorGUILayout.TextField(name, "--", new GUILayoutOption[] {
                    opt
                }), out num);
            }
            bool result;

            if (GUI.changed && ExTransform.Differs(num, value))
            {
                value  = num;
                result = true;
            }
            else
            {
                result = false;
            }
            return(result);
        }
        void OnEnable()
        {
            ExTransform.transform = this;
            this.mPos             = base.serializedObject.FindProperty("m_LocalPosition");
            this.mRot             = base.serializedObject.FindProperty("m_LocalRotation");
            this.mScl             = base.serializedObject.FindProperty("m_LocalScale");
            this.mRotEuler        = this.mRot.quaternionValue.eulerAngles;

            _background = GUI.backgroundColor;
            _foreground = GUI.contentColor;
        }
 ExTransform.Axes CheckDifference(SerializedProperty property)
 {
     ExTransform.Axes axes = ExTransform.Axes.None;
     if (property.hasMultipleDifferentValues)
     {
         Vector3 eulerAngles = property.quaternionValue.eulerAngles;
         UnityEngine.Object[] targetObjects = base.serializedObject.targetObjects;
         for (int i = 0; i < targetObjects.Length; i++)
         {
             UnityEngine.Object @object = targetObjects[i];
             axes |= ExTransform.CheckDifference(@object as Transform, eulerAngles);
             if (axes == ExTransform.Axes.All)
             {
                 break;
             }
         }
     }
     return(axes);
 }
        static ExTransform.Axes CheckDifference(Transform t, Vector3 original)
        {
            Vector3 localEulerAngles = t.localEulerAngles;

            ExTransform.Axes axes = ExTransform.Axes.None;
            if (ExTransform.Differs(localEulerAngles.x, original.x))
            {
                axes |= ExTransform.Axes.X;
            }
            if (ExTransform.Differs(localEulerAngles.y, original.y))
            {
                axes |= ExTransform.Axes.Y;
            }
            if (ExTransform.Differs(localEulerAngles.z, original.z))
            {
                axes |= ExTransform.Axes.Z;
            }
            return(axes);
        }
 void OnDestroy()
 {
     ExTransform.transform = null;
 }