public override void OnInspectorGUI() { Styles(); serializedObject.Update(); var intensity = serializedObject.FindProperty("_intensities"); var range = serializedObject.FindProperty("_range"); var width = serializedObject.FindProperty("_width"); var lenght = serializedObject.FindProperty("_lenght"); var ground = serializedObject.FindProperty("_groundHeigh"); var distancePow = serializedObject.FindProperty("_distancePow"); var distanceLerp = serializedObject.FindProperty("_distanceLerper"); var center = serializedObject.FindProperty("_center"); EditorGUILayout.BeginHorizontal(); int typeIndex = serializedObject.FindProperty("type").enumValueIndex; if (GUILayout.Button("<", arrowStyle, GUILayout.Height(50))) { GravityField.SwitchType(ref typeIndex, -1); } EditorGUILayout.LabelField(GravityField.TypeString((GravityField.Type)typeIndex) + " Field", titleStyle, GUILayout.Height(titleHeight)); if (GUILayout.Button(">", arrowStyle, GUILayout.Height(50))) { GravityField.SwitchType(ref typeIndex, 1); } serializedObject.FindProperty("type").enumValueIndex = typeIndex; EditorGUILayout.EndHorizontal(); intensity.vector2Value = EditorGUILayout.Vector2Field("Intensity : ", intensity.vector2Value); distancePow.floatValue = EditorGUILayout.FloatField("Distance Pow : ", distancePow.floatValue); distanceLerp.floatValue = EditorGUILayout.FloatField("Distance Lerp Pow : ", distanceLerp.floatValue); center.vector3Value = EditorGUILayout.Vector3Field("Center : ", center.vector3Value); switch ((GravityField.Type)typeIndex) { default: break; case GravityField.Type.TwoSided: goto case GravityField.Type.Flat; case GravityField.Type.Flat: Vector3 size = new Vector3(width.floatValue, range.floatValue, lenght.floatValue); size = EditorGUILayout.Vector3Field("Size : ", size); width.floatValue = size.x; range.floatValue = size.y; lenght.floatValue = size.z; break; case GravityField.Type.Spherical: range.floatValue = EditorGUILayout.FloatField("Radius : ", range.floatValue); ground.floatValue = EditorGUILayout.FloatField("Ground Radius : ", ground.floatValue); break; } serializedObject.ApplyModifiedProperties(); }