Files
Cielonos/Assets/OtherPlugins/GraphicsCat/Modules/Common/Misc/LayerAutoCompleter.cs
SoulliesOfficial d15957c719 更新
2025-12-17 04:19:38 -05:00

52 lines
1.4 KiB
C#

#if UNITY_EDITOR
using UnityEditor;
using UnityEngine;
namespace GraphicsCat
{
[InitializeOnLoad]
public static class LayerAutoCompleter
{
static LayerAutoCompleter()
{
EditorApplication.delayCall += () =>
{
CompleteEmptyLayers();
};
}
public static void CompleteEmptyLayers()
{
SerializedObject tagManager = new SerializedObject(AssetDatabase.LoadAllAssetsAtPath("ProjectSettings/TagManager.asset")[0]);
SerializedProperty layersProp = tagManager.FindProperty("layers");
bool madeChanges = false;
// Process all layers (0-31)
for (int i = 0; i < 32; i++)
{
SerializedProperty layerProp = layersProp.GetArrayElementAtIndex(i);
// Auto-name if empty
if (string.IsNullOrEmpty(layerProp.stringValue))
{
layerProp.stringValue = "Layer" + i;
madeChanges = true;
Logger.Log($"Auto-named Layer {i} as 'Layer{i}'");
}
}
if (madeChanges)
{
tagManager.ApplyModifiedProperties();
Logger.Log("All empty layers have been auto-named!");
}
else
{
// Debug.Log("All layers already have names. No changes made.");
}
}
}
}
#endif