Skip to content

Commit 074ae57

Browse files
Add DebugUIComponent
1 parent 2583023 commit 074ae57

File tree

6 files changed

+118
-50
lines changed

6 files changed

+118
-50
lines changed

Assets/Scenes/Empty.unity

Lines changed: 57 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,59 @@ MonoBehaviour:
243243
m_enable: 1
244244
m_defaultMaterial: {fileID: 0}
245245
m_shapes: []
246+
--- !u!1 &770230239
247+
GameObject:
248+
m_ObjectHideFlags: 0
249+
m_CorrespondingSourceObject: {fileID: 0}
250+
m_PrefabInstance: {fileID: 0}
251+
m_PrefabAsset: {fileID: 0}
252+
serializedVersion: 6
253+
m_Component:
254+
- component: {fileID: 770230240}
255+
- component: {fileID: 770230241}
256+
m_Layer: 0
257+
m_Name: DebugUI
258+
m_TagString: Untagged
259+
m_Icon: {fileID: 0}
260+
m_NavMeshLayer: 0
261+
m_StaticEditorFlags: 0
262+
m_IsActive: 1
263+
--- !u!4 &770230240
264+
Transform:
265+
m_ObjectHideFlags: 0
266+
m_CorrespondingSourceObject: {fileID: 0}
267+
m_PrefabInstance: {fileID: 0}
268+
m_PrefabAsset: {fileID: 0}
269+
m_GameObject: {fileID: 770230239}
270+
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
271+
m_LocalPosition: {x: 0, y: 0, z: 0}
272+
m_LocalScale: {x: 1, y: 1, z: 1}
273+
m_Children: []
274+
m_Father: {fileID: 0}
275+
m_RootOrder: 3
276+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
277+
--- !u!114 &770230241
278+
MonoBehaviour:
279+
m_ObjectHideFlags: 0
280+
m_CorrespondingSourceObject: {fileID: 0}
281+
m_PrefabInstance: {fileID: 0}
282+
m_PrefabAsset: {fileID: 0}
283+
m_GameObject: {fileID: 770230239}
284+
m_Enabled: 1
285+
m_EditorHideFlags: 0
286+
m_Script: {fileID: 11500000, guid: cc789d3dfe8e4c90ae18d29e6a687166, type: 3}
287+
m_Name:
288+
m_EditorClassIdentifier:
289+
m_enable: 1
290+
m_scale: 2
291+
m_skin: {fileID: 11400000, guid: 4346a5dd01e15a745b7d3df2ba5ab6d3, type: 2}
292+
m_drawers:
293+
- m_guid: f856bfcfa6327534fbdcfb32e09bad6f
294+
m_asset: {fileID: 11400000, guid: f856bfcfa6327534fbdcfb32e09bad6f, type: 2}
295+
- m_guid: e22946bc75712b245899bc6dfb0c8498
296+
m_asset: {fileID: 11400000, guid: e22946bc75712b245899bc6dfb0c8498, type: 2}
297+
- m_guid: 2c3a2510c22cba645ac071cc0c57d937
298+
m_asset: {fileID: 11400000, guid: 2c3a2510c22cba645ac071cc0c57d937, type: 2}
246299
--- !u!1 &1188849071
247300
GameObject:
248301
m_ObjectHideFlags: 0
@@ -323,7 +376,7 @@ Transform:
323376
m_LocalScale: {x: 1, y: 1, z: 1}
324377
m_Children: []
325378
m_Father: {fileID: 0}
326-
m_RootOrder: 6
379+
m_RootOrder: 7
327380
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
328381
--- !u!1 &1507539452
329382
GameObject:
@@ -440,7 +493,7 @@ Transform:
440493
m_LocalScale: {x: 1, y: 1, z: 1}
441494
m_Children: []
442495
m_Father: {fileID: 0}
443-
m_RootOrder: 3
496+
m_RootOrder: 4
444497
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
445498
--- !u!1 &1572831520
446499
GameObject:
@@ -522,7 +575,7 @@ Transform:
522575
m_LocalScale: {x: 1, y: 1, z: 1}
523576
m_Children: []
524577
m_Father: {fileID: 0}
525-
m_RootOrder: 5
578+
m_RootOrder: 6
526579
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
527580
--- !u!1 &1823135811
528581
GameObject:
@@ -553,7 +606,7 @@ Transform:
553606
m_LocalScale: {x: 1, y: 1, z: 1}
554607
m_Children: []
555608
m_Father: {fileID: 0}
556-
m_RootOrder: 4
609+
m_RootOrder: 5
557610
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
558611
--- !u!114 &1823135813
559612
MonoBehaviour:

Packages/UGF.DebugTools/Runtime/DebugGLDrawer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace UGF.DebugTools.Runtime
88
{
99
public class DebugGLDrawer
1010
{
11-
public bool Enable { get; set; }
11+
public bool Enable { get; set; } = true;
1212
public IReadOnlyDictionary<string, DebugGLShape> Shapes { get; }
1313
public IReadOnlyList<DebugGLDrawCommand> Commands { get; }
1414

Lines changed: 1 addition & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,7 @@
1-
using UGF.EditorTools.Runtime.IMGUI.AssetReferences;
2-
using UnityEngine;
3-
using Object = UnityEngine.Object;
4-
5-
namespace UGF.DebugTools.Runtime
1+
namespace UGF.DebugTools.Runtime
62
{
73
public static partial class DebugUI
84
{
95
public static DebugUIDrawer Drawer { get; } = new DebugUIDrawer();
10-
11-
static DebugUI()
12-
{
13-
DebugUISettingsAsset settings = DebugUISettings.Settings.GetData();
14-
15-
Drawer.Enable = settings.Enable;
16-
Drawer.Scale = Vector2.one * settings.Scale;
17-
18-
if (settings.Skin != null)
19-
{
20-
Drawer.SetSkin(settings.Skin);
21-
}
22-
23-
for (int i = 0; i < settings.Drawers.Count; i++)
24-
{
25-
AssetReference<DebugUIDrawerAsset> reference = settings.Drawers[i];
26-
IDebugUIDrawer drawer = reference.Asset.Build();
27-
28-
Drawer.Add(reference.Guid, drawer);
29-
}
30-
31-
OnCreateExecuter();
32-
}
33-
34-
private static void OnCreateExecuter()
35-
{
36-
var executer = new GameObject(nameof(DebugUIEventComponent)).AddComponent<DebugUIEventComponent>();
37-
38-
executer.DrawGUI += OnDrawGUI;
39-
40-
Object.DontDestroyOnLoad(executer.gameObject);
41-
}
42-
43-
private static void OnDrawGUI()
44-
{
45-
Drawer.DrawGUI();
46-
47-
DebugUIContentCache.Reset();
48-
}
496
}
507
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using UGF.EditorTools.Runtime.IMGUI.AssetReferences;
4+
using UnityEngine;
5+
6+
namespace UGF.DebugTools.Runtime
7+
{
8+
[AddComponentMenu("Unity Game Framework/Debug/Debug UI", 2000)]
9+
public class DebugUIComponent : MonoBehaviour
10+
{
11+
[SerializeField] private bool m_enable = true;
12+
[SerializeField] private float m_scale = 1F;
13+
[SerializeField] private GUISkin m_skin;
14+
[SerializeField] private List<AssetReference<DebugUIDrawerAsset>> m_drawers = new List<AssetReference<DebugUIDrawerAsset>>();
15+
16+
public bool Enable { get { return m_enable; } set { m_enable = value; } }
17+
public float Scale { get { return m_scale; } set { m_scale = value; } }
18+
public GUISkin Skin { get { return m_skin; } set { m_skin = value; } }
19+
public List<AssetReference<DebugUIDrawerAsset>> Drawers { get { return m_drawers; } }
20+
21+
private void Start()
22+
{
23+
DebugUI.Drawer.Enable = m_enable;
24+
DebugUI.Drawer.Scale = Vector2.one * m_scale;
25+
26+
if (m_skin != null)
27+
{
28+
DebugUI.Drawer.SetSkin(m_skin);
29+
}
30+
31+
for (int i = 0; i < m_drawers.Count; i++)
32+
{
33+
AssetReference<DebugUIDrawerAsset> reference = m_drawers[i];
34+
35+
DebugUI.Drawer.Add(reference.Guid, reference.Asset.Build());
36+
}
37+
}
38+
39+
private void OnDestroy()
40+
{
41+
for (int i = m_drawers.Count - 1; i >= 0; i--)
42+
{
43+
AssetReference<DebugUIDrawerAsset> reference = m_drawers[i];
44+
45+
DebugUI.Drawer.Remove(reference.Guid);
46+
}
47+
}
48+
49+
private void OnGUI()
50+
{
51+
DebugUI.Drawer.DrawGUI();
52+
DebugUIContentCache.Reset();
53+
}
54+
}
55+
}

Packages/UGF.DebugTools/Runtime/DebugUIComponent.cs.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Packages/UGF.DebugTools/Runtime/DebugUIDrawer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace UGF.DebugTools.Runtime
88
{
99
public class DebugUIDrawer
1010
{
11-
public bool Enable { get; set; }
11+
public bool Enable { get; set; } = true;
1212
public IReadOnlyDictionary<string, IDebugUIDrawer> Drawers { get; }
1313
public Vector2 Scale { get; set; } = Vector2.one;
1414
public GUISkin Skin { get { return HasSkin ? m_skin : throw new ArgumentException("Value not specified."); } }

0 commit comments

Comments
 (0)