130 lines
3.4 KiB
C#
130 lines
3.4 KiB
C#
|
namespace Dreamteck.Splines.Editor
|
||
|
{
|
||
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
using UnityEngine;
|
||
|
using UnityEditor;
|
||
|
|
||
|
public class SplineEditorBase
|
||
|
{
|
||
|
public bool open = false;
|
||
|
public EditorGUIEvents eventModule = null;
|
||
|
|
||
|
public delegate void UndoHandler(string title);
|
||
|
public delegate void EmptyHandler();
|
||
|
|
||
|
public UndoHandler undoHandler;
|
||
|
public EmptyHandler repaintHandler;
|
||
|
|
||
|
protected bool gizmosEnabled
|
||
|
{
|
||
|
get { return _gizmosEnabled; }
|
||
|
}
|
||
|
|
||
|
private bool _gizmosEnabled = true;
|
||
|
|
||
|
protected readonly SerializedObject serializedObject;
|
||
|
|
||
|
public SplineEditorBase(SerializedObject serializedObject)
|
||
|
{
|
||
|
Load();
|
||
|
this.serializedObject = serializedObject;
|
||
|
eventModule = new EditorGUIEvents();
|
||
|
}
|
||
|
|
||
|
public virtual void Destroy()
|
||
|
{
|
||
|
Save();
|
||
|
}
|
||
|
|
||
|
protected virtual void Load()
|
||
|
{
|
||
|
open = LoadBool("open");
|
||
|
}
|
||
|
|
||
|
protected virtual void Save()
|
||
|
{
|
||
|
SaveBool("open", open);
|
||
|
}
|
||
|
|
||
|
public virtual void DrawInspector()
|
||
|
{
|
||
|
if(SceneView.lastActiveSceneView != null)
|
||
|
{
|
||
|
#if UNITY_2019_1_OR_NEWER
|
||
|
_gizmosEnabled = SceneView.lastActiveSceneView.drawGizmos;
|
||
|
#endif
|
||
|
}
|
||
|
eventModule.Update(Event.current);
|
||
|
}
|
||
|
|
||
|
public virtual void DrawScene(SceneView current)
|
||
|
{
|
||
|
eventModule.Update(Event.current);
|
||
|
}
|
||
|
|
||
|
protected virtual void RecordUndo(string title)
|
||
|
{
|
||
|
if (undoHandler != null) undoHandler(title);
|
||
|
}
|
||
|
|
||
|
protected virtual void Repaint()
|
||
|
{
|
||
|
if (repaintHandler != null)
|
||
|
{
|
||
|
repaintHandler();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public virtual void UndoRedoPerformed()
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
protected string GetSaveName(string valueName)
|
||
|
{
|
||
|
return GetType().FullName + "." + valueName;
|
||
|
}
|
||
|
|
||
|
protected void SaveBool(string variableName, bool value)
|
||
|
{
|
||
|
EditorPrefs.SetBool(GetType().ToString() + "." + variableName, value);
|
||
|
}
|
||
|
|
||
|
protected void SaveInt(string variableName, int value)
|
||
|
{
|
||
|
EditorPrefs.SetInt(GetType().ToString() + "." + variableName, value);
|
||
|
}
|
||
|
|
||
|
protected void SaveFloat(string variableName, float value)
|
||
|
{
|
||
|
EditorPrefs.SetFloat(GetType().ToString() + "." + variableName, value);
|
||
|
}
|
||
|
|
||
|
protected void SaveString(string variableName, string value)
|
||
|
{
|
||
|
EditorPrefs.SetString(GetType().ToString() + "." + variableName, value);
|
||
|
}
|
||
|
|
||
|
protected bool LoadBool(string variableName, bool defaultValue = false)
|
||
|
{
|
||
|
return EditorPrefs.GetBool(GetType().ToString() + "." + variableName, defaultValue);
|
||
|
}
|
||
|
|
||
|
protected int LoadInt(string variableName, int defaultValue = 0)
|
||
|
{
|
||
|
return EditorPrefs.GetInt(GetType().ToString() + "." + variableName, defaultValue);
|
||
|
}
|
||
|
|
||
|
protected float LoadFloat(string variableName, float d = 0f)
|
||
|
{
|
||
|
return EditorPrefs.GetFloat(GetType().ToString() + "." + variableName, d);
|
||
|
}
|
||
|
|
||
|
protected string LoadString(string variableName)
|
||
|
{
|
||
|
return EditorPrefs.GetString(GetType().ToString() + "." + variableName, "");
|
||
|
}
|
||
|
}
|
||
|
}
|