Unity MeshRendererレンダリングの並べ替えの問題(SortingLayerの設定とレイヤー内の順序)



Unity Meshrenderer Rendering Sorting Problem Setting Sortinglayer



キューブの作成などの3Dプロジェクトでは、インスペクターにレイヤーの並べ替えとレイヤーの順序の2つのフィールドはありません。並べ替えを変更する必要がある場合は、スクリプトを介して直接書き込むことができます。また、エディタースクリプトを記述して、2つのフィールドの並べ替えレイヤーと並べ替えレイヤーをインスペクターに表示して設定することもできます。

1.スクリプトの作成:



using UnityEngine public class MeshRendererSorting : MonoBehaviour { private MeshRenderer meshRenderer void Start() { meshRenderer = GetComponent() meshRenderer.sortingLayerName = 'UI' meshRenderer.sortingOrder = 3 } }

2.ソートフィールドを表示するエディタスクリプトを記述します

using UnityEngine using UnityEditor [CustomEditor(typeof(MeshRenderer))] public class MeshRendererEditor : 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