Skip to content

Commit 5e064d7

Browse files
author
BlackSpiral15
committed
Added some stuff and progress bar
Restructurization
1 parent 9119542 commit 5e064d7

17 files changed

+522
-400
lines changed

Assets/DeadScriptsSearcher/Scripts/CoreFunctions.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,19 @@ namespace Spiral.EditorTools.DeadScriptsSearcher
1010
/// </summary>
1111
public static class CoreFunctions
1212
{
13-
public static List<T> Array2List<T>(this T[] ts) where T : UnityEngine.Object
13+
public static string List2String(this List<string> entry)
14+
{
15+
string output = "";
16+
int count = entry.Count;
17+
for (int e = 0; e < count; e++)
18+
{
19+
output += entry[e];
20+
if (e != count - 1) output += "\n";
21+
}
22+
return output;
23+
}
24+
25+
public static List<T> Array2List<T>(this T[] ts) where T : Object
1426
{
1527
List<T> output = new List<T>();
1628
for (int i = 0; i < ts.Length; i++) { output.Add(ts[i]); }

Assets/DeadScriptsSearcher/Scripts/DeadScripts.cs

Lines changed: 19 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,19 @@
11
using System.Collections.Generic;
22
using UnityEngine;
33
using UnityEngine.SceneManagement;
4+
using static Spiral.EditorTools.DeadScriptsSearcher.Localization;
45

56
#if UNITY_EDITOR
67
using UnityEditor;
78
namespace Spiral.EditorTools.DeadScriptsSearcher
89
{
9-
public class DeadGID
10-
{
11-
public ulong gid;
12-
public bool showInfo;
13-
public string entry;
14-
}
15-
16-
public class DeadGUID
17-
{
18-
/// <summary>
19-
/// GUID, ассоциированный со скриптом
20-
/// </summary>
21-
public string guid;
22-
23-
/// <summary>
24-
/// Все мёртвые объекты со скриптом этого вида
25-
/// </summary>
26-
public List<ObjectID> oids;
27-
28-
/// <summary>
29-
/// Все MonoBehaviour со скриптом этого вида
30-
/// </summary>
31-
public List<DeadGID> gids;
32-
33-
34-
// EDITOR WINDOW STUFF
35-
public bool showInfo;
36-
}
37-
3810
public class DeadScripts
3911
{
12+
public static DeadScripts instance { get; } = new DeadScripts() { debug = false };
13+
4014
public bool debug = true;
4115
public List<ObjectID> deadOIDs { get; private set; } = new List<ObjectID>();
42-
public List<DeadGUID> deadGUIDs { get; private set; } = new List<DeadGUID>();
16+
public List<ScriptGUID> deadGUIDs { get; private set; } = new List<ScriptGUID>();
4317
private SceneFile sceneFile = null;
4418

4519
// PROPERTIES -----------------------------------------------------------------------------
@@ -82,7 +56,12 @@ public void UpdateDeadList()
8256
// если на объекте есть мёртвые скрипты - добавляем ObjectID в список
8357
ObjectID objectID = new ObjectID(go, debug);
8458
deadOIDs.Add(objectID);
59+
60+
EditorUtility.DisplayProgressBar(strProgressBar_SearchDeadObject,
61+
strProgressBar_SearchingScene,
62+
i * 1f / count);
8563
}
64+
EditorUtility.ClearProgressBar();
8665

8766
// если не найдены
8867
if (deadOIDs.Count == 0)
@@ -100,9 +79,14 @@ public void SearchForDeads()
10079
sceneFile = new SceneFile();
10180

10281
// шерстим гиды мёртвых
103-
deadGUIDs = new List<DeadGUID>();
104-
for (int i = 0; i < deadOIDs.Count; i++)
82+
deadGUIDs = new List<ScriptGUID>();
83+
int count = deadOIDs.Count;
84+
for (int i = 0; i < count; i++)
10585
{
86+
EditorUtility.DisplayProgressBar(strProgressBar_SearchingSceneFile,
87+
strProgressBar_InspectedObject + $"{i} / {count}",
88+
i * 1f / count);
89+
10690
// какой объект мы сейчас инспектируем
10791
ObjectID oid = deadOIDs[i];
10892

@@ -137,19 +121,7 @@ public void SearchForDeads()
137121
continue;
138122

139123
// GUID найден, создаём учётку для скрипта
140-
DeadGID deadGID = new DeadGID
141-
{
142-
gid = gid,
143-
showInfo = false
144-
};
145-
List<string> entryList = sceneFile.ComponentInfo(gid);
146-
string entry = "";
147-
for (int e = 0; e < entryList.Count; e++)
148-
{
149-
entry += entryList[e];
150-
if (e != entryList.Count - 1) entry += "\n";
151-
}
152-
deadGID.entry = entry;
124+
ScriptInstanceGID deadGID = new ScriptInstanceGID(gid, sceneFile);
153125

154126
// проверяем, есть GUID в списке или нет
155127
int guidIDX = deadGUIDs.FindIndex(x => x.guid == guid);
@@ -160,19 +132,14 @@ public void SearchForDeads()
160132
}
161133
else // создаём новую GUID-учёткуы
162134
{
163-
DeadGUID deadGUID = new DeadGUID
164-
{
165-
guid = guid,
166-
oids = new List<ObjectID>(),
167-
gids = new List<DeadGID>(),
168-
showInfo = false,
169-
};
135+
ScriptGUID deadGUID = new ScriptGUID(guid, true);
170136
deadGUIDs.Add(deadGUID);
171137
deadGUID.oids.Add(oid);
172138
deadGUID.gids.Add(deadGID);
173139
}
174140
}
175141
}
142+
EditorUtility.ClearProgressBar();
176143

177144
if (debug)
178145
{

0 commit comments

Comments
 (0)