Unity修改模型(MeshRender)的渲染顺序

在编辑器Editor文件夹下加入下面代码

using UnityEditor;
using UnityEngine;

///
/// 显示Sorting Layer,Order In Layer
///
[CustomEditor(typeof(MeshRenderer))]
public class MeshRenderEditor : Editor
{
MeshRenderer meshRenderer;

public override void OnInspectorGUI()
{
    base.OnInspectorGUI();

    meshRenderer = target as MeshRenderer;

    string[] layerNames = new string[SortingLayer.layers.Length];
    for (int i = 0; i < layerNames.Length; i++)
    {
        layerNames[i] = SortingLayer.layers[i].name;
    }

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

}

猜你喜欢

转载自blog.csdn.net/weixin_43780907/article/details/130742107