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; }