73 lines
2.7 KiB
C#
73 lines
2.7 KiB
C#
namespace Dreamteck.Splines.Editor
|
|
{
|
|
using UnityEngine;
|
|
using System.Collections;
|
|
using UnityEditor;
|
|
|
|
[CustomEditor(typeof(SplineProjector), true)]
|
|
[CanEditMultipleObjects]
|
|
public class SplineProjectorEditor : SplineTracerEditor
|
|
{
|
|
private bool info = false;
|
|
|
|
public override void OnInspectorGUI()
|
|
{
|
|
SplineProjector user = (SplineProjector)target;
|
|
if (user.mode == SplineProjector.Mode.Accurate)
|
|
{
|
|
showAveraging = false;
|
|
}
|
|
else
|
|
{
|
|
showAveraging = true;
|
|
}
|
|
base.OnInspectorGUI();
|
|
}
|
|
|
|
protected override void BodyGUI()
|
|
{
|
|
EditorGUILayout.Space();
|
|
EditorGUILayout.LabelField("Projector", EditorStyles.boldLabel);
|
|
|
|
serializedObject.Update();
|
|
SerializedProperty mode = serializedObject.FindProperty("_mode");
|
|
SerializedProperty projectTarget = serializedObject.FindProperty("_projectTarget");
|
|
SerializedProperty targetObject = serializedObject.FindProperty("_targetObject");
|
|
SerializedProperty autoProject = serializedObject.FindProperty("_autoProject");
|
|
|
|
|
|
EditorGUI.BeginChangeCheck();
|
|
EditorGUILayout.PropertyField(mode, new GUIContent("Mode"));
|
|
if (mode.intValue == (int)SplineProjector.Mode.Accurate)
|
|
{
|
|
SerializedProperty subdivide = serializedObject.FindProperty("_subdivide");
|
|
EditorGUILayout.PropertyField(subdivide, new GUIContent("Subdivide"));
|
|
}
|
|
EditorGUILayout.PropertyField(projectTarget, new GUIContent("Project Target"));
|
|
EditorGUILayout.PropertyField(targetObject, new GUIContent("Apply Target"));
|
|
|
|
GUI.color = Color.white;
|
|
EditorGUILayout.PropertyField(autoProject, new GUIContent("Auto Project"));
|
|
|
|
info = EditorGUILayout.Foldout(info, "Info");
|
|
SerializedProperty percent = serializedObject.FindProperty("_result").FindPropertyRelative("percent");
|
|
if (info) EditorGUILayout.HelpBox("Projection percent: " + percent.floatValue, MessageType.Info);
|
|
|
|
if (EditorGUI.EndChangeCheck()) serializedObject.ApplyModifiedProperties();
|
|
base.BodyGUI();
|
|
}
|
|
|
|
protected override void DuringSceneGUI(SceneView currentSceneView)
|
|
{
|
|
base.DuringSceneGUI(currentSceneView);
|
|
for (int i = 0; i < users.Length; i++)
|
|
{
|
|
SplineProjector user = (SplineProjector)users[i];
|
|
if (user.spline == null) return;
|
|
if (!user.autoProject) return;
|
|
DrawResult(user.result);
|
|
}
|
|
}
|
|
}
|
|
}
|