131 lines
3.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using UnityEngine;
using UnityEditor;
using System.Text;
using System.Collections.Generic;
using Unity.VisualScripting;
using System;
using System.Linq;
# if UNITY_EDITOR_WIN
public class ChangePicType2Sprite : EditorWindow
{
StringBuilder stringBuilder = new StringBuilder();
static float endCloumn;
static float endlayor;
static string editRow;
static string editLayor;
static int m_goCount;
static int m_missingCount;
[MenuItem("Tool/更改排信息")]
public static void ShowWindow()
{
EditorWindow.GetWindow(typeof(ChangePicType2Sprite));
}
void OnGUI()
{
this.maxSize = new Vector2(800,800);
// 空格
EditorGUILayout.Space(20);
// 样式颜色
GUIStyle style = new GUIStyle();
style.normal.textColor = Color.red;
style.fontSize = 20;
editRow = EditorGUILayout.TextField("更改排号", editRow);
editLayor = EditorGUILayout.TextField("更改层号", editLayor);
List<GUILayoutOption> d = new List<GUILayoutOption>() { GUILayout.Width(160), GUILayout.Height(50) };
if (GUILayout.Button("开始修改",d.ToArray()))
{
GameObject[] target = Selection.gameObjects;
if(target.Length == 1)
{
GameObject game = target[0];
Transform[] transforms = game.GetComponentsInChildren<Transform>();
Debug.Log("t =" + transforms.Length);
foreach (Transform t in transforms)
{
Debug.Log(t.name);
if (t.name.Contains("-"))
{
string[] strName = t.name.Split("-");
if (strName.Length == 3)
{
string nowName = "";
nowName += !string.IsNullOrEmpty(editRow) ? editRow + "-" : strName[0] + "-";
nowName += strName[1] + "-";
nowName += !string.IsNullOrEmpty(editLayor) ? editLayor : strName[2];
t.name = nowName;
}
}
}
}
else
{
foreach (GameObject t in target)
{
if (t.name.Contains("-"))
{
string[] strName = t.name.Split("-");
string nowName = "";
nowName += !string.IsNullOrEmpty(editRow) ? editRow + "-" : strName[0] + "-";
nowName += strName[1] + "-";
nowName += !string.IsNullOrEmpty(editLayor) ? editLayor : strName[2];
t.name = nowName;
}
}
}
}
if (GUILayout.Button("clear", d.ToArray()))
{
GameObject[] target = Selection.gameObjects;
foreach (GameObject t in target)
{
Container container = t.GetComponent<Container>();
if (container != null)
{
Undo.DestroyObjectImmediate(container);
}
}
}
}
void checkSricpt(Transform transform)
{
// 获取游戏对象上的所有组件
MonoBehaviour[] components = transform.GetComponents<MonoBehaviour>();
// 遍历所有组件
foreach (MonoBehaviour comp in components)
{
// 检查组件是否已经被销毁
if (comp == null)
continue;
// 如果组件没有gameObject属性那么它是无效的
if (comp.gameObject == null)
{
Debug.LogWarning("无效的脚本: " + comp.GetType().Name, comp);
}
}
}
}
#endif