You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
3.0 KiB
66 lines
3.0 KiB
using System.Collections; |
|
using System.Collections.Generic; |
|
using UnityEditor; |
|
using UnityEngine; |
|
|
|
namespace HighlightPlus { |
|
[CustomEditor(typeof(HighlightManager))] |
|
public class HighlightManagerEditor : Editor { |
|
|
|
SerializedProperty highlightOnHover, layerMask, raycastCamera, raycastSource, maxDistance, volumeLayerMask; |
|
SerializedProperty selectOnClick, selectedProfile, selectedAndHighlightedProfile, singleSelection, toggleOnClick; |
|
|
|
void OnEnable() { |
|
highlightOnHover = serializedObject.FindProperty("highlightOnHover"); |
|
layerMask = serializedObject.FindProperty("layerMask"); |
|
raycastCamera = serializedObject.FindProperty("raycastCamera"); |
|
raycastSource = serializedObject.FindProperty("raycastSource"); |
|
maxDistance = serializedObject.FindProperty("maxDistance"); |
|
selectOnClick = serializedObject.FindProperty("selectOnClick"); |
|
selectedProfile = serializedObject.FindProperty("selectedProfile"); |
|
selectedAndHighlightedProfile = serializedObject.FindProperty("selectedAndHighlightedProfile"); |
|
singleSelection = serializedObject.FindProperty("singleSelection"); |
|
toggleOnClick = serializedObject.FindProperty("toggle"); |
|
} |
|
|
|
public override void OnInspectorGUI() { |
|
EditorGUILayout.Separator(); |
|
EditorGUILayout.HelpBox("Only objects with a collider can be highlighted automatically.", MessageType.Info); |
|
|
|
serializedObject.Update(); |
|
|
|
EditorGUILayout.PropertyField(layerMask); |
|
EditorGUILayout.PropertyField(raycastCamera); |
|
EditorGUILayout.PropertyField(raycastSource); |
|
EditorGUILayout.PropertyField(maxDistance, new GUIContent("Max Distance", "Max distance for target. 0 = infinity")); ; |
|
|
|
EditorGUILayout.PropertyField(highlightOnHover); |
|
EditorGUILayout.PropertyField(selectOnClick); |
|
if (selectOnClick.boolValue) { |
|
EditorGUI.indentLevel++; |
|
EditorGUILayout.PropertyField(selectedProfile); |
|
EditorGUILayout.PropertyField(selectedAndHighlightedProfile); |
|
EditorGUILayout.PropertyField(singleSelection); |
|
EditorGUILayout.PropertyField(toggleOnClick); |
|
EditorGUI.indentLevel--; |
|
} |
|
|
|
serializedObject.ApplyModifiedProperties(); |
|
} |
|
|
|
|
|
[MenuItem("GameObject/Effects/Highlight Plus/Create Manager", false, 10)] |
|
static void CreateManager(MenuCommand menuCommand) { |
|
HighlightManager manager = FindObjectOfType<HighlightManager>(); |
|
if (manager == null) { |
|
GameObject managerGO = new GameObject("HighlightPlusManager"); |
|
manager = managerGO.AddComponent<HighlightManager>(); |
|
// Register root object for undo. |
|
Undo.RegisterCreatedObjectUndo(manager, "Create Highlight Plus Manager"); |
|
} |
|
Selection.activeObject = manager; |
|
} |
|
|
|
} |
|
|
|
}
|
|
|