namespace Dreamteck.Splines.Editor { using UnityEngine; using System.Collections; using UnityEditor; [CustomEditor(typeof(PathGenerator), true)] [CanEditMultipleObjects] public class PathGeneratorEditor : MeshGenEditor { protected override void BodyGUI() { base.BodyGUI(); PathGenerator pathGenerator = (PathGenerator)target; serializedObject.Update(); SerializedProperty slices = serializedObject.FindProperty("_slices"); SerializedProperty shape = serializedObject.FindProperty("_shape"); SerializedProperty shapeExposure = serializedObject.FindProperty("_shapeExposure"); SerializedProperty useShapeCurve = serializedObject.FindProperty("_useShapeCurve"); SerializedProperty compensateCorners = serializedObject.FindProperty("_compensateCorners"); EditorGUI.BeginChangeCheck(); EditorGUILayout.Space(); EditorGUILayout.LabelField("Geometry", EditorStyles.boldLabel); EditorGUILayout.PropertyField(slices, new GUIContent("Slices")); EditorGUILayout.PropertyField(compensateCorners, new GUIContent("Compensate Corners")); EditorGUILayout.PropertyField(useShapeCurve, new GUIContent("Use Shape Curve")); if (useShapeCurve.boolValue) { if(shape.animationCurveValue == null || shape.animationCurveValue.keys.Length == 0) { shape.animationCurveValue = new AnimationCurve(); shape.animationCurveValue.AddKey(new Keyframe(0, 0)); shape.animationCurveValue.AddKey(new Keyframe(1, 0)); } if (slices.intValue == 1) EditorGUILayout.HelpBox("Slices are set to 1. The curve shape may not be approximated correctly. You can increase the slices in order to fix that.", MessageType.Warning); EditorGUILayout.PropertyField(shape, new GUIContent("Shape Curve")); EditorGUILayout.PropertyField(shapeExposure, new GUIContent("Shape Exposure")); } if (slices.intValue < 1) slices.intValue = 1; if (EditorGUI.EndChangeCheck()) serializedObject.ApplyModifiedProperties(); UVControls(pathGenerator); } } }