54 lines
2.7 KiB
C#
54 lines
2.7 KiB
C#
#if UNITY_EDITOR
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
namespace FirstGearGames.SmoothCameraShaker.EditorDesign
|
|
{
|
|
|
|
[CustomEditor(typeof(ObjectShaker))]
|
|
public class ObjectShakerEditor : UnityEditor.Editor
|
|
{
|
|
private MonoScript _script;
|
|
private SerializedProperty _removeFromManagerOnDisable;
|
|
private SerializedProperty _limitMagnitude;
|
|
private SerializedProperty _positionalMagnitudeLimit;
|
|
private SerializedProperty _rotationalMagnitudeLimit;
|
|
private SerializedProperty _shakeOnEnable;
|
|
private void OnEnable()
|
|
{
|
|
_script = MonoScript.FromMonoBehaviour((ObjectShaker)target);
|
|
_removeFromManagerOnDisable = serializedObject.FindProperty("_removeFromManagerOnDisable");
|
|
_limitMagnitude = serializedObject.FindProperty("_limitMagnitude");
|
|
_positionalMagnitudeLimit = serializedObject.FindProperty("_positionalMagnitudeLimit");
|
|
_rotationalMagnitudeLimit = serializedObject.FindProperty("_rotationalMagnitudeLimit");
|
|
_shakeOnEnable = serializedObject.FindProperty("_shakeOnEnable");
|
|
}
|
|
|
|
public override void OnInspectorGUI()
|
|
{
|
|
serializedObject.Update();
|
|
|
|
EditorGUI.BeginDisabledGroup(true);
|
|
_script = EditorGUILayout.ObjectField("Script:", _script, typeof(MonoScript), false) as MonoScript;
|
|
EditorGUI.EndDisabledGroup();
|
|
|
|
EditorGUILayout.PropertyField(_removeFromManagerOnDisable, new GUIContent("Remove From Manager On Disable", "True to remove this shakers reference from it's handler when disabled. Useful if you have a lot of these shakers in your scene, but objects are not always enabled."));
|
|
|
|
//Limit magnitude.
|
|
EditorGUILayout.PropertyField(_limitMagnitude, new GUIContent("Limit Magnitude", "True to limit how much magnitude can be applied to this CameraShaker."));
|
|
if (_limitMagnitude.boolValue == true)
|
|
{
|
|
EditorGUI.indentLevel++;
|
|
EditorGUILayout.PropertyField(_positionalMagnitudeLimit, new GUIContent("Positional Magnitude Limit", "How much positional magnitude to limit this CameraShaker to."));
|
|
EditorGUILayout.PropertyField(_rotationalMagnitudeLimit, new GUIContent("Rotational Magnitude Limit", "How much rotational magnitude to limit this CameraShaker to."));
|
|
EditorGUI.indentLevel--;
|
|
}
|
|
|
|
EditorGUILayout.Space();
|
|
EditorGUILayout.PropertyField(_shakeOnEnable, new GUIContent("Shake On Enable", "ShakeData to run when enabled. Leave empty to not use this feature."));
|
|
serializedObject.ApplyModifiedProperties();
|
|
}
|
|
}
|
|
|
|
}
|
|
#endif |