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.
67 lines
3.0 KiB
67 lines
3.0 KiB
11 months ago
|
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;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|