@atelierai/uco 1.0.7 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/package.json +1 -1
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/DependencyResolver/NuGetConfig.cs +132 -132
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/DependencyResolver/NuGetDependencyResolver.cs +237 -237
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/DependencyResolver/NuGetDownloader.cs +82 -82
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Resource/MenuItems.cs +247 -247
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Resource/ToolGroups.cs +153 -153
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/SystemTool/Skills.Create.SkillBody.cs +155 -155
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Console.GetLogs.cs +95 -95
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Docs.HttpFetcher.cs +139 -139
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Instance.ListAll.cs +72 -72
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/PathReadHelper.cs +106 -106
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Script.Validate.cs +252 -252
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Tests/TestResultCollector.cs +537 -537
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Tests.cs +400 -400
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Branding/ProductInfo.cs +62 -62
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/CopilotServerManager.cs +1034 -1034
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Skills/Skill_InitialSetup.cs +197 -197
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Startup.Editor.cs +201 -201
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Startup.cs +67 -67
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/CopilotListWindowBase.cs +393 -393
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/CopilotWindowBase.cs +113 -113
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.Connection.cs +3 -3
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.CopilotFeatures.cs +195 -195
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.CopilotServer.cs +20 -20
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.CreateGUI.cs +354 -354
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.cs +78 -78
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowInitializer.cs +47 -47
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/SerializationCheckWindow.cs +190 -190
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UnityCopilotPluginEditor.Build.cs +91 -91
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UnityCopilotPluginEditor.Config.cs +298 -298
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UnityCopilotPluginEditor.Static.cs +296 -296
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UnityCopilotPluginEditor.cs +69 -69
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/PackageUtils.cs +168 -168
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/PrefsKeyMigration.cs +119 -119
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/SafeDefaultsGuard.cs +180 -180
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/ScriptUtils.cs +229 -229
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/ToolsManifestGenerator.cs +200 -200
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/UnityAuthoringAdapters.cs +1467 -1467
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/UnityAuthoringSafetyReloadGuard.cs +65 -65
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/UnityCopilotUpdateProjectSettings.cs +66 -66
- package/vendor/plugin/com.atelierai.unity.copilot/Plugins/ReflectorNet.dll +0 -0
- package/vendor/plugin/com.atelierai.unity.copilot/Plugins/Uco.Framework.Common.dll +0 -0
- package/vendor/plugin/com.atelierai.unity.copilot/Plugins/Uco.Framework.dll +0 -0
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Converter/Json/Structures/EntityIdConverter.cs +120 -120
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Data/GameObjectMetadata.cs +110 -110
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Data/GameObjectMetadata.pre-Unity.6.5.cs +110 -110
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Unity/Logs/FileLogStorage.cs +547 -547
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPlugin.Build.cs +243 -243
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPlugin.Config.cs +3 -3
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPlugin.cs +295 -295
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPluginBuilder.cs +105 -105
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPluginRuntime.Static.cs +155 -155
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPluginRuntime.cs +59 -59
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Utils/EnvironmentUtils.cs +11 -11
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/AtomicApi/AtomicApiTestFixtures.cs +99 -99
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/AtomicApi/TryModifyAtTests.cs +227 -227
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/AuthoringSafetyPilotTests.cs +1050 -1050
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/DependencyResolver/NuGetLegacyMigrationTests.cs +304 -304
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Environment/EnvironmentUtilsTests.cs +1 -1
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/BlacklistTypeTests.cs +416 -416
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataFieldScriptableObjectPopulationTests.cs +172 -172
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataFieldScriptableObjectPopulationTests.pre-Unity.6.5.cs +169 -169
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPopulationTests.cs +182 -182
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPopulationTests.pre-Unity.6.5.cs +179 -179
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPropertyPopulationTests.cs +175 -175
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPropertyPopulationTests.pre-Unity.6.5.cs +174 -174
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPropertyScriptableObjectPopulationTests.cs +171 -171
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPropertyScriptableObjectPopulationTests.pre-Unity.6.5.cs +170 -170
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Assets/AssetsCreateFolderTests.cs +243 -243
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Assets/AssetsMaterialTests.cs +101 -101
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Assets/AssetsPrefabCreateTests.cs +348 -348
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Assets/AssetsPrefabCreateTests.pre-Unity.6.5.cs +348 -348
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Assets/AssetsShaderTests.cs +194 -194
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/PathBasedToolTests.cs +573 -573
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/PathBasedToolTests.pre-Unity.6.5.cs +513 -513
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Screenshot/ScreenshotCameraTests.cs +154 -154
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Screenshot/ScreenshotCameraTests.pre-Unity.6.5.cs +154 -154
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Screenshot/ScreenshotGameViewTests.cs +164 -164
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Screenshot/ScreenshotSceneViewTests.cs +155 -155
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/ToolParameterTests.cs +56 -56
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/ToolThreadSafetyTests.cs +651 -651
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/ToolThreadSafetyTests.pre-Unity.6.5.cs +651 -651
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ToolBatchExecutionIntegrationTests.cs +407 -407
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/{McpPluginTests.cs → UcoPluginTests.cs} +105 -105
- package/vendor/plugin/com.atelierai.unity.copilot/package.json +1 -1
- /package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/{McpPluginTests.cs.meta → UcoPluginTests.cs.meta} +0 -0
|
@@ -1,110 +1,110 @@
|
|
|
1
|
-
/*
|
|
2
|
-
┌──────────────────────────────────────────────────────────────────┐
|
|
3
|
-
│ Author: Ivan Murzak (https://github.com/IvanMurzak) │
|
|
4
|
-
│ Repository: GitHub (https://github.com/IvanMurzak/Unity-MCP) │
|
|
5
|
-
│ Copyright (c) 2025 Ivan Murzak │
|
|
6
|
-
│ Licensed under the Apache License, Version 2.0. │
|
|
7
|
-
│ See the LICENSE file in the project root for more information. │
|
|
8
|
-
└──────────────────────────────────────────────────────────────────┘
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
#nullable enable
|
|
12
|
-
#if UNITY_6000_5_OR_NEWER
|
|
13
|
-
using System.Collections.Generic;
|
|
14
|
-
using System.Text;
|
|
15
|
-
using com.IvanMurzak.ReflectorNet.Utils;
|
|
16
|
-
using com.AtelierAI.Unity.Copilot.Runtime.Utils;
|
|
17
|
-
using UnityEngine;
|
|
18
|
-
|
|
19
|
-
namespace AIGD
|
|
20
|
-
{
|
|
21
|
-
public class GameObjectMetadata
|
|
22
|
-
{
|
|
23
|
-
public UnityEngine.EntityId instanceID = UnityEngine.EntityId.None;
|
|
24
|
-
public string? path;
|
|
25
|
-
public string? name;
|
|
26
|
-
public string? sceneName;
|
|
27
|
-
public string? tag;
|
|
28
|
-
public bool activeSelf;
|
|
29
|
-
public bool activeInHierarchy;
|
|
30
|
-
public List<GameObjectMetadata> children = new();
|
|
31
|
-
|
|
32
|
-
public string Print(int limit = global::com.AtelierAI.Uco.Framework.Common.Consts.
|
|
33
|
-
{
|
|
34
|
-
var sb = new StringBuilder();
|
|
35
|
-
|
|
36
|
-
// Add table header
|
|
37
|
-
sb.AppendLine("Scene: " + sceneName);
|
|
38
|
-
sb.AppendLine("Path to root: " + path);
|
|
39
|
-
sb.AppendLine("-------------------------------------------------------------------------");
|
|
40
|
-
sb.AppendLine("instanceID | activeInHierarchy | activeSelf | tag | name");
|
|
41
|
-
sb.AppendLine("-----------|-------------------|------------|-----------|----------------");
|
|
42
|
-
|
|
43
|
-
// Add the current GameObject's metadata
|
|
44
|
-
AppendMetadata(sb, this, depth: 0, ref limit);
|
|
45
|
-
|
|
46
|
-
return sb.ToString();
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
public static void AppendMetadata(StringBuilder sb, GameObjectMetadata metadata, int depth, ref int limit)
|
|
50
|
-
{
|
|
51
|
-
var padding = StringUtils.GetPadding(depth);
|
|
52
|
-
if (limit <= 0)
|
|
53
|
-
{
|
|
54
|
-
sb.AppendLine($"{padding}... [Limit reached] ...");
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
limit--;
|
|
58
|
-
// Indent the path based on depth for better readability
|
|
59
|
-
var indentedPath = $"{padding}{metadata.name}";
|
|
60
|
-
|
|
61
|
-
// Add the current GameObject's data
|
|
62
|
-
sb.AppendLine($"{metadata.instanceID,-10} | {metadata.activeInHierarchy,-17} | {metadata.activeSelf,-10} | {metadata.tag,-9} | {indentedPath}");
|
|
63
|
-
|
|
64
|
-
// Recursively add children
|
|
65
|
-
var paddingForChildren = StringUtils.GetPadding(depth + 1);
|
|
66
|
-
foreach (var child in metadata.children)
|
|
67
|
-
{
|
|
68
|
-
if (limit <= 0)
|
|
69
|
-
{
|
|
70
|
-
sb.AppendLine($"{paddingForChildren}... [Limit reached] ...");
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
limit--;
|
|
74
|
-
AppendMetadata(sb, child, depth + 1, ref limit);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
public static GameObjectMetadata? FromGameObject(GameObject go, int includeChildrenDepth = 3)
|
|
79
|
-
{
|
|
80
|
-
if (go == null)
|
|
81
|
-
return null;
|
|
82
|
-
|
|
83
|
-
// Create metadata for the GameObject
|
|
84
|
-
var metadata = new GameObjectMetadata
|
|
85
|
-
{
|
|
86
|
-
instanceID = go.GetEntityId(),
|
|
87
|
-
path = go.GetPath(),
|
|
88
|
-
name = go.name,
|
|
89
|
-
sceneName = go.scene.name,
|
|
90
|
-
tag = go.tag,
|
|
91
|
-
activeSelf = go.activeSelf,
|
|
92
|
-
activeInHierarchy = go.activeInHierarchy
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
if (includeChildrenDepth > 0)
|
|
96
|
-
{
|
|
97
|
-
metadata.children ??= new();
|
|
98
|
-
foreach (Transform child in go.transform)
|
|
99
|
-
{
|
|
100
|
-
var childMetadata = FromGameObject(child.gameObject, includeChildrenDepth - 1);
|
|
101
|
-
if (childMetadata != null)
|
|
102
|
-
metadata.children.Add(childMetadata);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
return metadata;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
#endif
|
|
1
|
+
/*
|
|
2
|
+
┌──────────────────────────────────────────────────────────────────┐
|
|
3
|
+
│ Author: Ivan Murzak (https://github.com/IvanMurzak) │
|
|
4
|
+
│ Repository: GitHub (https://github.com/IvanMurzak/Unity-MCP) │
|
|
5
|
+
│ Copyright (c) 2025 Ivan Murzak │
|
|
6
|
+
│ Licensed under the Apache License, Version 2.0. │
|
|
7
|
+
│ See the LICENSE file in the project root for more information. │
|
|
8
|
+
└──────────────────────────────────────────────────────────────────┘
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
#nullable enable
|
|
12
|
+
#if UNITY_6000_5_OR_NEWER
|
|
13
|
+
using System.Collections.Generic;
|
|
14
|
+
using System.Text;
|
|
15
|
+
using com.IvanMurzak.ReflectorNet.Utils;
|
|
16
|
+
using com.AtelierAI.Unity.Copilot.Runtime.Utils;
|
|
17
|
+
using UnityEngine;
|
|
18
|
+
|
|
19
|
+
namespace AIGD
|
|
20
|
+
{
|
|
21
|
+
public class GameObjectMetadata
|
|
22
|
+
{
|
|
23
|
+
public UnityEngine.EntityId instanceID = UnityEngine.EntityId.None;
|
|
24
|
+
public string? path;
|
|
25
|
+
public string? name;
|
|
26
|
+
public string? sceneName;
|
|
27
|
+
public string? tag;
|
|
28
|
+
public bool activeSelf;
|
|
29
|
+
public bool activeInHierarchy;
|
|
30
|
+
public List<GameObjectMetadata> children = new();
|
|
31
|
+
|
|
32
|
+
public string Print(int limit = global::com.AtelierAI.Uco.Framework.Common.Consts.Uco.Plugin.LinesLimit)
|
|
33
|
+
{
|
|
34
|
+
var sb = new StringBuilder();
|
|
35
|
+
|
|
36
|
+
// Add table header
|
|
37
|
+
sb.AppendLine("Scene: " + sceneName);
|
|
38
|
+
sb.AppendLine("Path to root: " + path);
|
|
39
|
+
sb.AppendLine("-------------------------------------------------------------------------");
|
|
40
|
+
sb.AppendLine("instanceID | activeInHierarchy | activeSelf | tag | name");
|
|
41
|
+
sb.AppendLine("-----------|-------------------|------------|-----------|----------------");
|
|
42
|
+
|
|
43
|
+
// Add the current GameObject's metadata
|
|
44
|
+
AppendMetadata(sb, this, depth: 0, ref limit);
|
|
45
|
+
|
|
46
|
+
return sb.ToString();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
public static void AppendMetadata(StringBuilder sb, GameObjectMetadata metadata, int depth, ref int limit)
|
|
50
|
+
{
|
|
51
|
+
var padding = StringUtils.GetPadding(depth);
|
|
52
|
+
if (limit <= 0)
|
|
53
|
+
{
|
|
54
|
+
sb.AppendLine($"{padding}... [Limit reached] ...");
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
limit--;
|
|
58
|
+
// Indent the path based on depth for better readability
|
|
59
|
+
var indentedPath = $"{padding}{metadata.name}";
|
|
60
|
+
|
|
61
|
+
// Add the current GameObject's data
|
|
62
|
+
sb.AppendLine($"{metadata.instanceID,-10} | {metadata.activeInHierarchy,-17} | {metadata.activeSelf,-10} | {metadata.tag,-9} | {indentedPath}");
|
|
63
|
+
|
|
64
|
+
// Recursively add children
|
|
65
|
+
var paddingForChildren = StringUtils.GetPadding(depth + 1);
|
|
66
|
+
foreach (var child in metadata.children)
|
|
67
|
+
{
|
|
68
|
+
if (limit <= 0)
|
|
69
|
+
{
|
|
70
|
+
sb.AppendLine($"{paddingForChildren}... [Limit reached] ...");
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
limit--;
|
|
74
|
+
AppendMetadata(sb, child, depth + 1, ref limit);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
public static GameObjectMetadata? FromGameObject(GameObject go, int includeChildrenDepth = 3)
|
|
79
|
+
{
|
|
80
|
+
if (go == null)
|
|
81
|
+
return null;
|
|
82
|
+
|
|
83
|
+
// Create metadata for the GameObject
|
|
84
|
+
var metadata = new GameObjectMetadata
|
|
85
|
+
{
|
|
86
|
+
instanceID = go.GetEntityId(),
|
|
87
|
+
path = go.GetPath(),
|
|
88
|
+
name = go.name,
|
|
89
|
+
sceneName = go.scene.name,
|
|
90
|
+
tag = go.tag,
|
|
91
|
+
activeSelf = go.activeSelf,
|
|
92
|
+
activeInHierarchy = go.activeInHierarchy
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
if (includeChildrenDepth > 0)
|
|
96
|
+
{
|
|
97
|
+
metadata.children ??= new();
|
|
98
|
+
foreach (Transform child in go.transform)
|
|
99
|
+
{
|
|
100
|
+
var childMetadata = FromGameObject(child.gameObject, includeChildrenDepth - 1);
|
|
101
|
+
if (childMetadata != null)
|
|
102
|
+
metadata.children.Add(childMetadata);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
return metadata;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
#endif
|
package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Data/GameObjectMetadata.pre-Unity.6.5.cs
CHANGED
|
@@ -1,110 +1,110 @@
|
|
|
1
|
-
/*
|
|
2
|
-
┌──────────────────────────────────────────────────────────────────┐
|
|
3
|
-
│ Author: Ivan Murzak (https://github.com/IvanMurzak) │
|
|
4
|
-
│ Repository: GitHub (https://github.com/IvanMurzak/Unity-MCP) │
|
|
5
|
-
│ Copyright (c) 2025 Ivan Murzak │
|
|
6
|
-
│ Licensed under the Apache License, Version 2.0. │
|
|
7
|
-
│ See the LICENSE file in the project root for more information. │
|
|
8
|
-
└──────────────────────────────────────────────────────────────────┘
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
#nullable enable
|
|
12
|
-
#if !UNITY_6000_5_OR_NEWER
|
|
13
|
-
using System.Collections.Generic;
|
|
14
|
-
using System.Text;
|
|
15
|
-
using com.IvanMurzak.ReflectorNet.Utils;
|
|
16
|
-
using com.AtelierAI.Unity.Copilot.Runtime.Utils;
|
|
17
|
-
using UnityEngine;
|
|
18
|
-
|
|
19
|
-
namespace AIGD
|
|
20
|
-
{
|
|
21
|
-
public class GameObjectMetadata
|
|
22
|
-
{
|
|
23
|
-
public int instanceID;
|
|
24
|
-
public string? path;
|
|
25
|
-
public string? name;
|
|
26
|
-
public string? sceneName;
|
|
27
|
-
public string? tag;
|
|
28
|
-
public bool activeSelf;
|
|
29
|
-
public bool activeInHierarchy;
|
|
30
|
-
public List<GameObjectMetadata> children = new();
|
|
31
|
-
|
|
32
|
-
public string Print(int limit = global::com.AtelierAI.Uco.Framework.Common.Consts.
|
|
33
|
-
{
|
|
34
|
-
var sb = new StringBuilder();
|
|
35
|
-
|
|
36
|
-
// Add table header
|
|
37
|
-
sb.AppendLine("Scene: " + sceneName);
|
|
38
|
-
sb.AppendLine("Path to root: " + path);
|
|
39
|
-
sb.AppendLine("-------------------------------------------------------------------------");
|
|
40
|
-
sb.AppendLine("instanceID | activeInHierarchy | activeSelf | tag | name");
|
|
41
|
-
sb.AppendLine("-----------|-------------------|------------|-----------|----------------");
|
|
42
|
-
|
|
43
|
-
// Add the current GameObject's metadata
|
|
44
|
-
AppendMetadata(sb, this, depth: 0, ref limit);
|
|
45
|
-
|
|
46
|
-
return sb.ToString();
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
public static void AppendMetadata(StringBuilder sb, GameObjectMetadata metadata, int depth, ref int limit)
|
|
50
|
-
{
|
|
51
|
-
var padding = StringUtils.GetPadding(depth);
|
|
52
|
-
if (limit <= 0)
|
|
53
|
-
{
|
|
54
|
-
sb.AppendLine($"{padding}... [Limit reached] ...");
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
limit--;
|
|
58
|
-
// Indent the path based on depth for better readability
|
|
59
|
-
var indentedPath = $"{padding}{metadata.name}";
|
|
60
|
-
|
|
61
|
-
// Add the current GameObject's data
|
|
62
|
-
sb.AppendLine($"{metadata.instanceID,-10} | {metadata.activeInHierarchy,-17} | {metadata.activeSelf,-10} | {metadata.tag,-9} | {indentedPath}");
|
|
63
|
-
|
|
64
|
-
// Recursively add children
|
|
65
|
-
var paddingForChildren = StringUtils.GetPadding(depth + 1);
|
|
66
|
-
foreach (var child in metadata.children)
|
|
67
|
-
{
|
|
68
|
-
if (limit <= 0)
|
|
69
|
-
{
|
|
70
|
-
sb.AppendLine($"{paddingForChildren}... [Limit reached] ...");
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
limit--;
|
|
74
|
-
AppendMetadata(sb, child, depth + 1, ref limit);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
public static GameObjectMetadata? FromGameObject(GameObject go, int includeChildrenDepth = 3)
|
|
79
|
-
{
|
|
80
|
-
if (go == null)
|
|
81
|
-
return null;
|
|
82
|
-
|
|
83
|
-
// Create metadata for the GameObject
|
|
84
|
-
var metadata = new GameObjectMetadata
|
|
85
|
-
{
|
|
86
|
-
instanceID = go.GetInstanceID(),
|
|
87
|
-
path = go.GetPath(),
|
|
88
|
-
name = go.name,
|
|
89
|
-
sceneName = go.scene.name,
|
|
90
|
-
tag = go.tag,
|
|
91
|
-
activeSelf = go.activeSelf,
|
|
92
|
-
activeInHierarchy = go.activeInHierarchy
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
if (includeChildrenDepth > 0)
|
|
96
|
-
{
|
|
97
|
-
metadata.children ??= new();
|
|
98
|
-
foreach (Transform child in go.transform)
|
|
99
|
-
{
|
|
100
|
-
var childMetadata = FromGameObject(child.gameObject, includeChildrenDepth - 1);
|
|
101
|
-
if (childMetadata != null)
|
|
102
|
-
metadata.children.Add(childMetadata);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
return metadata;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
#endif
|
|
1
|
+
/*
|
|
2
|
+
┌──────────────────────────────────────────────────────────────────┐
|
|
3
|
+
│ Author: Ivan Murzak (https://github.com/IvanMurzak) │
|
|
4
|
+
│ Repository: GitHub (https://github.com/IvanMurzak/Unity-MCP) │
|
|
5
|
+
│ Copyright (c) 2025 Ivan Murzak │
|
|
6
|
+
│ Licensed under the Apache License, Version 2.0. │
|
|
7
|
+
│ See the LICENSE file in the project root for more information. │
|
|
8
|
+
└──────────────────────────────────────────────────────────────────┘
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
#nullable enable
|
|
12
|
+
#if !UNITY_6000_5_OR_NEWER
|
|
13
|
+
using System.Collections.Generic;
|
|
14
|
+
using System.Text;
|
|
15
|
+
using com.IvanMurzak.ReflectorNet.Utils;
|
|
16
|
+
using com.AtelierAI.Unity.Copilot.Runtime.Utils;
|
|
17
|
+
using UnityEngine;
|
|
18
|
+
|
|
19
|
+
namespace AIGD
|
|
20
|
+
{
|
|
21
|
+
public class GameObjectMetadata
|
|
22
|
+
{
|
|
23
|
+
public int instanceID;
|
|
24
|
+
public string? path;
|
|
25
|
+
public string? name;
|
|
26
|
+
public string? sceneName;
|
|
27
|
+
public string? tag;
|
|
28
|
+
public bool activeSelf;
|
|
29
|
+
public bool activeInHierarchy;
|
|
30
|
+
public List<GameObjectMetadata> children = new();
|
|
31
|
+
|
|
32
|
+
public string Print(int limit = global::com.AtelierAI.Uco.Framework.Common.Consts.Uco.Plugin.LinesLimit)
|
|
33
|
+
{
|
|
34
|
+
var sb = new StringBuilder();
|
|
35
|
+
|
|
36
|
+
// Add table header
|
|
37
|
+
sb.AppendLine("Scene: " + sceneName);
|
|
38
|
+
sb.AppendLine("Path to root: " + path);
|
|
39
|
+
sb.AppendLine("-------------------------------------------------------------------------");
|
|
40
|
+
sb.AppendLine("instanceID | activeInHierarchy | activeSelf | tag | name");
|
|
41
|
+
sb.AppendLine("-----------|-------------------|------------|-----------|----------------");
|
|
42
|
+
|
|
43
|
+
// Add the current GameObject's metadata
|
|
44
|
+
AppendMetadata(sb, this, depth: 0, ref limit);
|
|
45
|
+
|
|
46
|
+
return sb.ToString();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
public static void AppendMetadata(StringBuilder sb, GameObjectMetadata metadata, int depth, ref int limit)
|
|
50
|
+
{
|
|
51
|
+
var padding = StringUtils.GetPadding(depth);
|
|
52
|
+
if (limit <= 0)
|
|
53
|
+
{
|
|
54
|
+
sb.AppendLine($"{padding}... [Limit reached] ...");
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
limit--;
|
|
58
|
+
// Indent the path based on depth for better readability
|
|
59
|
+
var indentedPath = $"{padding}{metadata.name}";
|
|
60
|
+
|
|
61
|
+
// Add the current GameObject's data
|
|
62
|
+
sb.AppendLine($"{metadata.instanceID,-10} | {metadata.activeInHierarchy,-17} | {metadata.activeSelf,-10} | {metadata.tag,-9} | {indentedPath}");
|
|
63
|
+
|
|
64
|
+
// Recursively add children
|
|
65
|
+
var paddingForChildren = StringUtils.GetPadding(depth + 1);
|
|
66
|
+
foreach (var child in metadata.children)
|
|
67
|
+
{
|
|
68
|
+
if (limit <= 0)
|
|
69
|
+
{
|
|
70
|
+
sb.AppendLine($"{paddingForChildren}... [Limit reached] ...");
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
limit--;
|
|
74
|
+
AppendMetadata(sb, child, depth + 1, ref limit);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
public static GameObjectMetadata? FromGameObject(GameObject go, int includeChildrenDepth = 3)
|
|
79
|
+
{
|
|
80
|
+
if (go == null)
|
|
81
|
+
return null;
|
|
82
|
+
|
|
83
|
+
// Create metadata for the GameObject
|
|
84
|
+
var metadata = new GameObjectMetadata
|
|
85
|
+
{
|
|
86
|
+
instanceID = go.GetInstanceID(),
|
|
87
|
+
path = go.GetPath(),
|
|
88
|
+
name = go.name,
|
|
89
|
+
sceneName = go.scene.name,
|
|
90
|
+
tag = go.tag,
|
|
91
|
+
activeSelf = go.activeSelf,
|
|
92
|
+
activeInHierarchy = go.activeInHierarchy
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
if (includeChildrenDepth > 0)
|
|
96
|
+
{
|
|
97
|
+
metadata.children ??= new();
|
|
98
|
+
foreach (Transform child in go.transform)
|
|
99
|
+
{
|
|
100
|
+
var childMetadata = FromGameObject(child.gameObject, includeChildrenDepth - 1);
|
|
101
|
+
if (childMetadata != null)
|
|
102
|
+
metadata.children.Add(childMetadata);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
return metadata;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
#endif
|