70 lines
2.1 KiB
C#
70 lines
2.1 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.IO;
|
||
using UnityEditor;
|
||
using UnityEngine;
|
||
|
||
namespace Thousandto.Package
|
||
{
|
||
public class CheckZValue
|
||
{
|
||
private const string SOURCE_PATH = "Assets/GameAssets/Resources/GameUI/Form";
|
||
|
||
public static void Check()
|
||
{
|
||
EditorUtility.DisplayProgressBar("检查transform的Z值", "", 0);
|
||
var files = GetUIPrefabs();
|
||
var len = (float)files.Length;
|
||
for(int i = 0; i < len; ++i)
|
||
{
|
||
EditorUtility.DisplayProgressBar("检查transform的Z值", Path.GetFileName(files[i]), i / len);
|
||
var go = AssetDatabase.LoadAssetAtPath<GameObject>(files[i]);
|
||
if (go == null)
|
||
continue;
|
||
bool isChecked = false;
|
||
CheckTransform(go.transform, (_trans) =>
|
||
{
|
||
if (_trans.GetComponent<UIPanel>() != null)
|
||
return;
|
||
|
||
if (_trans.localPosition.z != 0)
|
||
{
|
||
var temp = _trans.localPosition;
|
||
temp.z = 0;
|
||
_trans.localPosition = temp;
|
||
|
||
isChecked = true;
|
||
}
|
||
});
|
||
|
||
if (isChecked)
|
||
UnityEngine.Debug.LogError("有改动的UI:" + Path.GetFileName(files[i]));
|
||
}
|
||
|
||
AssetDatabase.SaveAssets();
|
||
AssetDatabase.Refresh();
|
||
|
||
EditorUtility.ClearProgressBar();
|
||
}
|
||
|
||
private static string[] GetUIPrefabs()
|
||
{
|
||
var files = Directory.GetFiles(SOURCE_PATH, "*.prefab", SearchOption.AllDirectories);
|
||
return files;
|
||
}
|
||
|
||
private static void CheckTransform(Transform trans, Action<Transform> action)
|
||
{
|
||
var count = trans.childCount;
|
||
for(int i = 0; i < count; ++i)
|
||
{
|
||
var child = trans.GetChild(i);
|
||
if (action != null)
|
||
action(child);
|
||
|
||
CheckTransform(child, action);
|
||
}
|
||
}
|
||
}
|
||
}
|