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); } } } }