43 lines
1.4 KiB
C#
43 lines
1.4 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Reflection;
|
|
using UnityEditor;
|
|
using UnityEditorInternal;
|
|
using UnityEngine;
|
|
using UnityEngine.Rendering;
|
|
|
|
public class HardLight2DEditor : MonoBehaviour
|
|
{
|
|
|
|
[MenuItem ("HardLight2D/Refresh collider references")]
|
|
static void RefreshAll ()
|
|
{
|
|
HardLight2DManager.RefreshAllCollidersReferences ();
|
|
}
|
|
}
|
|
|
|
[CustomPropertyDrawer (typeof (SortingLayerPopup))]
|
|
public class SortingLayerDrawer : PropertyDrawer
|
|
{
|
|
public override void OnGUI (Rect position, SerializedProperty property, GUIContent label)
|
|
{
|
|
string[] options = GetSortingLayerNames ();
|
|
int[] picks = new int[options.Length];
|
|
var name = property.stringValue;
|
|
var choice = -1;
|
|
for (int i = 0; i < options.Length; i++)
|
|
{
|
|
picks[i] = i;
|
|
if (name == options[i]) choice = i;
|
|
}
|
|
choice = EditorGUI.IntPopup (position, label.text, choice, options, picks);
|
|
property.stringValue = options[choice];
|
|
}
|
|
|
|
public string[] GetSortingLayerNames ()
|
|
{
|
|
Type internalEditorUtilityType = typeof (InternalEditorUtility);
|
|
PropertyInfo sortingLayersProperty = internalEditorUtilityType.GetProperty ("sortingLayerNames", BindingFlags.Static | BindingFlags.NonPublic);
|
|
return (string[]) sortingLayersProperty.GetValue (null, new object[0]);
|
|
}
|
|
} |