48 lines
2.3 KiB
C#
48 lines
2.3 KiB
C#
|
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);
|
||
|
}
|
||
|
}
|
||
|
}
|