项目中有个需求,要找代码里面用到的id,所以写了个工具一键查找,在这里记录一下
using GCD.Data;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEngine;
class FindIdInCode : EditorWindow
{
public static FindIdInCode window;
[UnityEditor.MenuItem("TOOLS/检查工具/检查代码中资源id")]
public static void ShowEditorWindow()
{
window = EditorWindow.GetWindow<FindIdInCode>("检查代码中的SourceId", true);
}
string strCodeCheck = "";
string strLuaPath = "";
void OnGUI()
{
BeginWindows();
GUILayout.Label("请输入CS代码的相对路径");
strCodeCheck = EditorGUILayout.TextField(strCodeCheck);
GUILayout.Space(10);
GUILayout.Label("请输入lua文件相对路径路径");
strLuaPath = EditorGUILayout.TextField(strLuaPath);
if (GUILayout.Button("开始检查"))
{
StartCheck();
GUILayout.Space(10);
GUILayout.Label("检查完成");
}
EndWindows();
}
void StartCheck()
{
ClearData();
AddAllID();
AddAllCode();
ReadCodeID();
CheckNoUsedId();
SavaData();
DeleteFile();
}
string strFileName = "";
string strLuaFileName = "";
string strDirectoryPath = "";
List<string> allCodeData = new List<string>();//所有代码文件
List<string> allFindID = new List<string>();//所有ID
List<string> allUseID = new List<string>();//所有的使用到的id
List<string> allNoUseID = new List<string>();//所有废弃id
List<string> allNoUsePath = new List<string>();//所有废弃id
void ClearData()
{
allNoUseID.Clear(