added unity files
This commit is contained in:
parent
9042333f51
commit
28c15035a4
62 changed files with 3873 additions and 270 deletions
|
|
@ -0,0 +1,145 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace RunlevelSystems.DevPlus1.EditorTools
|
||||
{
|
||||
public class RLProjectAnalyzerWindow : EditorWindow
|
||||
{
|
||||
private RLProjectAnalysisData data = new RLProjectAnalysisData();
|
||||
private string lastRunTime = "Not run yet";
|
||||
private Vector2 scroll;
|
||||
|
||||
[MenuItem("Runlevel Systems/DevPlus1/Analyze Unity Project")]
|
||||
public static void ShowWindow()
|
||||
{
|
||||
RLProjectAnalyzerWindow window = GetWindow<RLProjectAnalyzerWindow>("Runlevel DevPlus1 Project Analyzer");
|
||||
window.minSize = new Vector2(520f, 520f);
|
||||
}
|
||||
|
||||
[MenuItem("Runlevel Systems/DevPlus1/Open Report Folder")]
|
||||
public static void OpenReportFolder()
|
||||
{
|
||||
RLReportExporter.RevealReportFolder();
|
||||
}
|
||||
|
||||
[MenuItem("Runlevel Systems/DevPlus1/Refresh Git Reports")]
|
||||
public static void RefreshGitReportsMenu()
|
||||
{
|
||||
RLGitReportSummary git = RLGitReportImporter.ImportGitReports();
|
||||
RLReportExporter.WriteGitSummary(git);
|
||||
AssetDatabase.Refresh();
|
||||
Debug.Log("Runlevel DevPlus1 Git report summary refreshed.");
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
RLReportExporter.EnsureFolders();
|
||||
data.projectName = Application.productName;
|
||||
data.unityVersion = Application.unityVersion;
|
||||
}
|
||||
|
||||
private void OnGUI()
|
||||
{
|
||||
scroll = EditorGUILayout.BeginScrollView(scroll);
|
||||
|
||||
EditorGUILayout.LabelField("Runlevel DevPlus1 Project Analyzer", EditorStyles.boldLabel);
|
||||
EditorGUILayout.Space();
|
||||
|
||||
if (GUILayout.Button("Import Git Reports")) ImportGitReports();
|
||||
if (GUILayout.Button("Analyze Open Scene")) AnalyzeOpenScenes();
|
||||
if (GUILayout.Button("Analyze Build Settings Scenes")) AnalyzeBuildSettingsScenes();
|
||||
if (GUILayout.Button("Analyze All Asset Scenes")) AnalyzeAllAssetScenes();
|
||||
if (GUILayout.Button("Analyze Prefabs")) AnalyzePrefabs();
|
||||
if (GUILayout.Button("Analyze Scripts")) AnalyzeScripts();
|
||||
if (GUILayout.Button("Generate All Reports")) GenerateAllReports();
|
||||
if (GUILayout.Button("Open Reports Folder")) RLReportExporter.RevealReportFolder();
|
||||
|
||||
EditorGUILayout.Space();
|
||||
EditorGUILayout.LabelField("Last run time", lastRunTime);
|
||||
EditorGUILayout.LabelField("Scenes analyzed", data.scenes.Count.ToString());
|
||||
EditorGUILayout.LabelField("Scripts analyzed", data.scripts.Count.ToString());
|
||||
EditorGUILayout.LabelField("Prefabs analyzed", data.prefabs.Count.ToString());
|
||||
EditorGUILayout.LabelField("Missing script count", CountMissingScripts().ToString());
|
||||
EditorGUILayout.LabelField("Missing reference count", CountMissingReferences().ToString());
|
||||
EditorGUILayout.LabelField("Report folder path", RLReportExporter.AbsoluteReportFolder);
|
||||
|
||||
EditorGUILayout.EndScrollView();
|
||||
}
|
||||
|
||||
private void ImportGitReports()
|
||||
{
|
||||
data.gitReports = RLGitReportImporter.ImportGitReports();
|
||||
RLReportExporter.WriteGitSummary(data.gitReports);
|
||||
MarkRun();
|
||||
}
|
||||
|
||||
private void AnalyzeOpenScenes()
|
||||
{
|
||||
data.scenes = RLSceneAnalyzer.AnalyzeOpenScenes();
|
||||
MarkRun();
|
||||
}
|
||||
|
||||
private void AnalyzeBuildSettingsScenes()
|
||||
{
|
||||
data.scenes = RLSceneAnalyzer.AnalyzeBuildSettingsScenes();
|
||||
MarkRun();
|
||||
}
|
||||
|
||||
private void AnalyzeAllAssetScenes()
|
||||
{
|
||||
data.scenes = RLSceneAnalyzer.AnalyzeAllAssetScenes();
|
||||
MarkRun();
|
||||
}
|
||||
|
||||
private void AnalyzePrefabs()
|
||||
{
|
||||
data.prefabs = RLPrefabAnalyzer.AnalyzePrefabs();
|
||||
MarkRun();
|
||||
}
|
||||
|
||||
private void AnalyzeScripts()
|
||||
{
|
||||
data.scripts = RLScriptAnalyzer.AnalyzeScripts();
|
||||
MarkRun();
|
||||
}
|
||||
|
||||
private void GenerateAllReports()
|
||||
{
|
||||
data.projectName = Application.productName;
|
||||
data.unityVersion = Application.unityVersion;
|
||||
data.generatedAt = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
data.gitReports = RLGitReportImporter.ImportGitReports();
|
||||
data.scenes = RLSceneAnalyzer.AnalyzeOpenScenes();
|
||||
data.prefabs = RLPrefabAnalyzer.AnalyzePrefabs();
|
||||
data.scripts = RLScriptAnalyzer.AnalyzeScripts();
|
||||
RLAIContextExporter.EnrichProjectContext(data);
|
||||
RLReportExporter.ExportAll(data);
|
||||
MarkRun();
|
||||
Debug.Log("Runlevel DevPlus1 Unity reports generated.");
|
||||
}
|
||||
|
||||
private void MarkRun()
|
||||
{
|
||||
lastRunTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
Repaint();
|
||||
}
|
||||
|
||||
private int CountMissingScripts()
|
||||
{
|
||||
int count = 0;
|
||||
foreach (RLSceneInfo scene in data.scenes) count += scene.missingScriptCount;
|
||||
foreach (RLPrefabInfo prefab in data.prefabs) count += prefab.missingScriptCount;
|
||||
return count;
|
||||
}
|
||||
|
||||
private int CountMissingReferences()
|
||||
{
|
||||
int count = 0;
|
||||
foreach (RLSceneInfo scene in data.scenes) count += scene.missingReferenceCount;
|
||||
foreach (RLPrefabInfo prefab in data.prefabs) count += prefab.missingReferenceCount;
|
||||
return count;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue