c1_unity/Assets/Editor/InspectorTools/Unity/MeshRendererInspector.cs
2023-04-03 11:04:31 +08:00

41 lines
1.2 KiB
C#

using UnityEngine;
using UnityEditor;
namespace BFEditor
{
[CustomEditor(typeof(MeshRenderer))]
public class MeshRendererInspector : Editor
{
MeshRenderer meshRenderer;
private void OnEnable()
{
meshRenderer = target as MeshRenderer;
}
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
string[] layerNames = new string[SortingLayer.layers.Length];
for (int i = 0; i < SortingLayer.layers.Length; i++)
{
layerNames[i] = SortingLayer.layers[i].name;
}
EditorGUI.BeginChangeCheck();
int layerValue = SortingLayer.GetLayerValueFromID(meshRenderer.sortingLayerID);
layerValue = EditorGUILayout.Popup("Sorting Layer", layerValue, layerNames);
SortingLayer layer = SortingLayer.layers[layerValue];
meshRenderer.sortingLayerName = layer.name;
meshRenderer.sortingLayerID = layer.id;
meshRenderer.sortingOrder = EditorGUILayout.IntField("Order in Layer", meshRenderer.sortingOrder);
if (EditorGUI.EndChangeCheck())
{
EditorUtility.SetDirty(meshRenderer);
}
}
}
}