using System.Linq; using InfinityCode.RealWorldTerrain; using UnityEditor; using UnityEngine; public class SortTerrainsForLB: EditorWindow { private RealWorldTerrainContainer container; private bool renameGameObjects = false; private void OnEnable() { container = FindObjectOfType(); } private void OnGUI() { container = EditorGUILayout.ObjectField("Container", container, typeof(RealWorldTerrainContainer), true) as RealWorldTerrainContainer; if (GUILayout.Button("Sort") && container != null) { RealWorldTerrainItem[] terrains = container.terrains.OrderBy(t => t.x).ThenBy(t => t.y).ToArray(); for (int i = 0; i < terrains.Length; i++) { if (renameGameObjects) terrains[i].gameObject.name = "Terrain " + i; terrains[i].transform.SetSiblingIndex(i); } } } [MenuItem("Window/Infinity Code/Real World Terrain/Tools/Sort Terrains For Landscape Builder")] public static void OpenWindow() { GetWindow(true, "Sort Terrains"); } }