diff --git a/Assets/Scenes/Empty.unity b/Assets/Scenes/Empty.unity index e24110c..383cac0 100644 --- a/Assets/Scenes/Empty.unity +++ b/Assets/Scenes/Empty.unity @@ -123,6 +123,179 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &68777780 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 68777783} + - component: {fileID: 68777782} + m_Layer: 0 + m_Name: Camera_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!20 &68777782 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 68777780} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0.25 + height: 0.25 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &68777783 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 68777780} + m_LocalRotation: {x: -0.149608, y: 0.8423521, z: -0.29731724, w: -0.4238666} + m_LocalPosition: {x: 4.746426, y: 4.7661033, z: 3.5221124} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &729525157 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 729525158} + - component: {fileID: 729525159} + m_Layer: 0 + m_Name: DebugGL + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &729525158 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 729525157} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &729525159 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 729525157} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f703d31518bf42139c3e84790d308364, type: 3} + m_Name: + m_EditorClassIdentifier: + m_enable: 1 + m_defaultMaterial: {fileID: 0} + m_shapes: [] +--- !u!1 &770230239 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 770230240} + - component: {fileID: 770230241} + m_Layer: 0 + m_Name: DebugUI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &770230240 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 770230239} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &770230241 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 770230239} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cc789d3dfe8e4c90ae18d29e6a687166, type: 3} + m_Name: + m_EditorClassIdentifier: + m_enable: 1 + m_scale: 2 + m_skin: {fileID: 11400000, guid: 4346a5dd01e15a745b7d3df2ba5ab6d3, type: 2} + m_drawers: + - m_guid: f856bfcfa6327534fbdcfb32e09bad6f + m_asset: {fileID: 11400000, guid: f856bfcfa6327534fbdcfb32e09bad6f, type: 2} + - m_guid: e22946bc75712b245899bc6dfb0c8498 + m_asset: {fileID: 11400000, guid: e22946bc75712b245899bc6dfb0c8498, type: 2} + - m_guid: 2c3a2510c22cba645ac071cc0c57d937 + m_asset: {fileID: 11400000, guid: 2c3a2510c22cba645ac071cc0c57d937, type: 2} --- !u!1 &1188849071 GameObject: m_ObjectHideFlags: 0 @@ -203,7 +376,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1507539452 GameObject: @@ -320,7 +493,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 1 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1572831520 GameObject: @@ -402,7 +575,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1823135811 GameObject: @@ -433,7 +606,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1823135813 MonoBehaviour: diff --git a/Assets/Settings.meta b/Assets/Settings.meta deleted file mode 100644 index 3877959..0000000 --- a/Assets/Settings.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 140c2f837f4b4024d8262093915eefe7 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Settings/Resources.meta b/Assets/Settings/Resources.meta deleted file mode 100644 index a6e737f..0000000 --- a/Assets/Settings/Resources.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 7625946dfce9b9147b151d92f0af4518 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Settings/Resources/UGF.DebugTools.meta b/Assets/Settings/Resources/UGF.DebugTools.meta deleted file mode 100644 index 152a533..0000000 --- a/Assets/Settings/Resources/UGF.DebugTools.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: e570f970da4757f41b91390242ec07d3 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Settings/Resources/UGF.DebugTools/DebugGLSettings.asset b/Assets/Settings/Resources/UGF.DebugTools/DebugGLSettings.asset deleted file mode 100644 index 6152268..0000000 --- a/Assets/Settings/Resources/UGF.DebugTools/DebugGLSettings.asset +++ /dev/null @@ -1,17 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 821f8acfec44421fb4d60606a716694b, type: 3} - m_Name: DebugGLSettings - m_EditorClassIdentifier: - m_enable: 1 - m_defaultMaterial: {fileID: 0} - m_shapes: [] diff --git a/Assets/Settings/Resources/UGF.DebugTools/DebugGLSettings.asset.meta b/Assets/Settings/Resources/UGF.DebugTools/DebugGLSettings.asset.meta deleted file mode 100644 index 657e396..0000000 --- a/Assets/Settings/Resources/UGF.DebugTools/DebugGLSettings.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f3eb085e0d895594f901ef7a18c53a66 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Settings/Resources/UGF.DebugTools/DebugUISettings.asset b/Assets/Settings/Resources/UGF.DebugTools/DebugUISettings.asset deleted file mode 100644 index 7c21eaa..0000000 --- a/Assets/Settings/Resources/UGF.DebugTools/DebugUISettings.asset +++ /dev/null @@ -1,24 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f7f428396e29478b9f069a749c847b49, type: 3} - m_Name: DebugUISettings - m_EditorClassIdentifier: - m_enable: 1 - m_scale: 2 - m_skin: {fileID: 11400000, guid: 4346a5dd01e15a745b7d3df2ba5ab6d3, type: 2} - m_drawers: - - m_guid: f856bfcfa6327534fbdcfb32e09bad6f - m_asset: {fileID: 11400000, guid: f856bfcfa6327534fbdcfb32e09bad6f, type: 2} - - m_guid: e22946bc75712b245899bc6dfb0c8498 - m_asset: {fileID: 11400000, guid: e22946bc75712b245899bc6dfb0c8498, type: 2} - - m_guid: 2c3a2510c22cba645ac071cc0c57d937 - m_asset: {fileID: 11400000, guid: 2c3a2510c22cba645ac071cc0c57d937, type: 2} diff --git a/Assets/Settings/Resources/UGF.DebugTools/DebugUISettings.asset.meta b/Assets/Settings/Resources/UGF.DebugTools/DebugUISettings.asset.meta deleted file mode 100644 index d2edc85..0000000 --- a/Assets/Settings/Resources/UGF.DebugTools/DebugUISettings.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1591bfebde80d6f46832bc254e98512a -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/UGF.DebugTools/Editor/DebugGLSettingsAssetEditor.cs b/Packages/UGF.DebugTools/Editor/DebugGLComponentEditor.cs similarity index 90% rename from Packages/UGF.DebugTools/Editor/DebugGLSettingsAssetEditor.cs rename to Packages/UGF.DebugTools/Editor/DebugGLComponentEditor.cs index 9e9c55c..9674d23 100644 --- a/Packages/UGF.DebugTools/Editor/DebugGLSettingsAssetEditor.cs +++ b/Packages/UGF.DebugTools/Editor/DebugGLComponentEditor.cs @@ -5,8 +5,8 @@ namespace UGF.DebugTools.Editor { - [CustomEditor(typeof(DebugGLSettingsAsset), true)] - internal class DebugGLSettingsAssetEditor : UnityEditor.Editor + [CustomEditor(typeof(DebugGLComponent), true)] + internal class DebugGLComponentEditor : UnityEditor.Editor { private SerializedProperty m_propertyEnable; private SerializedProperty m_propertyDefaultMaterial; diff --git a/Packages/UGF.DebugTools/Editor/DebugGLComponentEditor.cs.meta b/Packages/UGF.DebugTools/Editor/DebugGLComponentEditor.cs.meta new file mode 100644 index 0000000..263fc30 --- /dev/null +++ b/Packages/UGF.DebugTools/Editor/DebugGLComponentEditor.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: bbb29d8d797c460885e3d65248c151e9 +timeCreated: 1632321521 \ No newline at end of file diff --git a/Packages/UGF.DebugTools/Editor/DebugGLSettingsAssetEditor.cs.meta b/Packages/UGF.DebugTools/Editor/DebugGLSettingsAssetEditor.cs.meta deleted file mode 100644 index 5619af8..0000000 --- a/Packages/UGF.DebugTools/Editor/DebugGLSettingsAssetEditor.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 3fcbc2c94e124d5ebf88e2839fbd861d -timeCreated: 1632006181 \ No newline at end of file diff --git a/Packages/UGF.DebugTools/Editor/DebugGLSettingsProvider.cs b/Packages/UGF.DebugTools/Editor/DebugGLSettingsProvider.cs deleted file mode 100644 index 1ca5dbf..0000000 --- a/Packages/UGF.DebugTools/Editor/DebugGLSettingsProvider.cs +++ /dev/null @@ -1,15 +0,0 @@ -using UGF.CustomSettings.Editor; -using UGF.DebugTools.Runtime; -using UnityEditor; - -namespace UGF.DebugTools.Editor -{ - internal static class DebugGLSettingsProvider - { - [SettingsProvider] - private static SettingsProvider GetProvider() - { - return new CustomSettingsProvider("Project/Unity Game Framework/Debug GL", DebugGLSettings.Settings, SettingsScope.Project); - } - } -} diff --git a/Packages/UGF.DebugTools/Editor/DebugGLSettingsProvider.cs.meta b/Packages/UGF.DebugTools/Editor/DebugGLSettingsProvider.cs.meta deleted file mode 100644 index ed3b1dd..0000000 --- a/Packages/UGF.DebugTools/Editor/DebugGLSettingsProvider.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 3950bf4c1ce74c37b6a9d6c966751413 -timeCreated: 1632006219 \ No newline at end of file diff --git a/Packages/UGF.DebugTools/Editor/DebugUISettingsAssetEditor.cs b/Packages/UGF.DebugTools/Editor/DebugUIComponentEditor.cs similarity index 91% rename from Packages/UGF.DebugTools/Editor/DebugUISettingsAssetEditor.cs rename to Packages/UGF.DebugTools/Editor/DebugUIComponentEditor.cs index 4990ffc..f8fe462 100644 --- a/Packages/UGF.DebugTools/Editor/DebugUISettingsAssetEditor.cs +++ b/Packages/UGF.DebugTools/Editor/DebugUIComponentEditor.cs @@ -5,8 +5,8 @@ namespace UGF.DebugTools.Editor { - [CustomEditor(typeof(DebugUISettingsAsset), true)] - internal class DebugUISettingsAssetEditor : UnityEditor.Editor + [CustomEditor(typeof(DebugUIComponent), true)] + internal class DebugUIComponentEditor : UnityEditor.Editor { private SerializedProperty m_propertyEnable; private SerializedProperty m_propertyScale; diff --git a/Packages/UGF.DebugTools/Editor/DebugUIComponentEditor.cs.meta b/Packages/UGF.DebugTools/Editor/DebugUIComponentEditor.cs.meta new file mode 100644 index 0000000..0bb8b62 --- /dev/null +++ b/Packages/UGF.DebugTools/Editor/DebugUIComponentEditor.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: a2c219fe0a1f454fab3800d731c3ae31 +timeCreated: 1632321567 \ No newline at end of file diff --git a/Packages/UGF.DebugTools/Editor/DebugUISettingsAssetEditor.cs.meta b/Packages/UGF.DebugTools/Editor/DebugUISettingsAssetEditor.cs.meta deleted file mode 100644 index 2596928..0000000 --- a/Packages/UGF.DebugTools/Editor/DebugUISettingsAssetEditor.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 0930d10429dd40fb8a075e8ce6b481bf -timeCreated: 1631728345 \ No newline at end of file diff --git a/Packages/UGF.DebugTools/Editor/DebugUISettingsProvider.cs b/Packages/UGF.DebugTools/Editor/DebugUISettingsProvider.cs deleted file mode 100644 index df51e8b..0000000 --- a/Packages/UGF.DebugTools/Editor/DebugUISettingsProvider.cs +++ /dev/null @@ -1,15 +0,0 @@ -using UGF.CustomSettings.Editor; -using UGF.DebugTools.Runtime; -using UnityEditor; - -namespace UGF.DebugTools.Editor -{ - internal static class DebugUISettingsProvider - { - [SettingsProvider] - private static SettingsProvider GetProvider() - { - return new CustomSettingsProvider("Project/Unity Game Framework/Debug UI", DebugUISettings.Settings, SettingsScope.Project); - } - } -} diff --git a/Packages/UGF.DebugTools/Editor/DebugUISettingsProvider.cs.meta b/Packages/UGF.DebugTools/Editor/DebugUISettingsProvider.cs.meta deleted file mode 100644 index e6ce7af..0000000 --- a/Packages/UGF.DebugTools/Editor/DebugUISettingsProvider.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 9e802f2badf546ff8318cb00edad4aa4 -timeCreated: 1631361717 \ No newline at end of file diff --git a/Packages/UGF.DebugTools/Editor/UGF.DebugTools.Editor.asmdef b/Packages/UGF.DebugTools/Editor/UGF.DebugTools.Editor.asmdef index 20a116d..85ce08a 100644 --- a/Packages/UGF.DebugTools/Editor/UGF.DebugTools.Editor.asmdef +++ b/Packages/UGF.DebugTools/Editor/UGF.DebugTools.Editor.asmdef @@ -3,8 +3,6 @@ "rootNamespace": "UGF.DebugTools.Editor", "references": [ "GUID:37dddc4e4de3de84f81310a1d1cd5e2c", - "GUID:ff62901452104d14cae29322ac133c05", - "GUID:4806a292f99efd44aba38aea20847e17", "GUID:abdd615e45137c74ca2ce9c636c78c15" ], "includePlatforms": [ diff --git a/Packages/UGF.DebugTools/Runtime/DebugGL.Shapes.cs b/Packages/UGF.DebugTools/Runtime/DebugGL.Shapes.cs index a2c342c..00b2ec4 100644 --- a/Packages/UGF.DebugTools/Runtime/DebugGL.Shapes.cs +++ b/Packages/UGF.DebugTools/Runtime/DebugGL.Shapes.cs @@ -54,7 +54,7 @@ public static void CylinderWire(Vector3 position, Quaternion rotation, Vector3 s public static void Shape(string id, Vector3 position, Quaternion rotation, Vector3 scale, Color color) { - Shape(id, position, rotation, scale, color, GetDefaultMaterial()); + Shape(id, position, rotation, scale, color, DefaultMaterial); } public static void Shape(string id, Vector3 position, Quaternion rotation, Vector3 scale, Color color, Material material) diff --git a/Packages/UGF.DebugTools/Runtime/DebugGL.cs b/Packages/UGF.DebugTools/Runtime/DebugGL.cs index f826911..42f6a0f 100644 --- a/Packages/UGF.DebugTools/Runtime/DebugGL.cs +++ b/Packages/UGF.DebugTools/Runtime/DebugGL.cs @@ -1,4 +1,4 @@ -using UGF.EditorTools.Runtime.IMGUI.AssetReferences; +using System; using UnityEngine; namespace UGF.DebugTools.Runtime @@ -6,12 +6,13 @@ namespace UGF.DebugTools.Runtime public static partial class DebugGL { public static DebugGLDrawer Drawer { get; } = new DebugGLDrawer(); + public static Material DefaultMaterial { get { return m_defaultMaterial != null ? m_defaultMaterial : throw new ArgumentException("Value not specified."); } } + public static bool HasDefaultMaterial { get { return m_defaultMaterial != null; } } + + private static Material m_defaultMaterial; static DebugGL() { - DebugGLSettingsAsset settings = DebugGLSettings.Settings.GetData(); - - Drawer.Enable = settings.Enable; Drawer.AddShape(ShapeLineWireId, DebugGLUtility.CreateShapeLineWire()); Drawer.AddShape(ShapeTriangleWireId, DebugGLUtility.CreateShapeTriangleWire()); Drawer.AddShape(ShapeQuadWireId, DebugGLUtility.CreateShapeQuadWire()); @@ -19,32 +20,18 @@ static DebugGL() Drawer.AddShape(ShapeCubeWireId, DebugGLUtility.CreateShapeCubeWire()); Drawer.AddShape(ShapeSphereWireId, DebugGLUtility.CreateShapeSphereWire()); Drawer.AddShape(ShapeCylinderWireId, DebugGLUtility.CreateShapeCylinderWire()); - - for (int i = 0; i < settings.Shapes.Count; i++) - { - AssetReference reference = settings.Shapes[i]; - - Drawer.AddShape(reference.Guid, reference.Asset.Build()); - } - - Camera.onPostRender += OnDrawGL; } - public static Material GetDefaultMaterial() + public static void SetDefaultMaterial(Material material) { - DebugGLSettingsAsset settings = DebugGLSettings.Settings.GetData(); - - return settings.DefaultMaterial ? settings.DefaultMaterial : DebugGLUtility.DefaultMaterial; - } + if (material == null) throw new ArgumentNullException(nameof(material)); - private static void OnDrawGL(Camera camera) - { - Drawer.DrawGL(); + m_defaultMaterial = material; } - [RuntimeInitializeOnLoadMethod] - private static void OnInitialize() + public static void ClearDefaultMaterial() { + m_defaultMaterial = null; } } } diff --git a/Packages/UGF.DebugTools/Runtime/DebugGLComponent.cs b/Packages/UGF.DebugTools/Runtime/DebugGLComponent.cs new file mode 100644 index 0000000..2996f96 --- /dev/null +++ b/Packages/UGF.DebugTools/Runtime/DebugGLComponent.cs @@ -0,0 +1,74 @@ +using System.Collections; +using System.Collections.Generic; +using UGF.EditorTools.Runtime.IMGUI.AssetReferences; +using UnityEngine; + +namespace UGF.DebugTools.Runtime +{ + [AddComponentMenu("Unity Game Framework/Debug/Debug GL", 2000)] + public class DebugGLComponent : MonoBehaviour + { + [SerializeField] private bool m_enable = true; + [SerializeField] private Material m_defaultMaterial; + [SerializeField] private List> m_shapes = new List>(); + + public bool Enable { get { return m_enable; } set { m_enable = value; } } + public Material DefaultMaterial { get { return m_defaultMaterial; } set { m_defaultMaterial = value; } } + public List> Shapes { get { return m_shapes; } } + + private static readonly WaitForEndOfFrame m_waitForEndOfFrame = new WaitForEndOfFrame(); + private static readonly Camera.CameraCallback m_onPostRenderHandler = OnRender; + + private void Start() + { + DebugGL.Drawer.Enable = m_enable; + DebugGL.SetDefaultMaterial(m_defaultMaterial ? m_defaultMaterial : DebugGLUtility.CreateDefaultMaterial()); + + for (int i = 0; i < m_shapes.Count; i++) + { + AssetReference reference = m_shapes[i]; + + DebugGL.Drawer.AddShape(reference.Guid, reference.Asset.Build()); + } + } + + private void OnDestroy() + { + DebugGL.ClearDefaultMaterial(); + + for (int i = 0; i < m_shapes.Count; i++) + { + AssetReference reference = m_shapes[i]; + + DebugGL.Drawer.RemoveShape(reference.Guid); + } + } + + private void OnEnable() + { + Camera.onPostRender += m_onPostRenderHandler; + + StartCoroutine(OnRenderEndRoutine()); + } + + private void OnDisable() + { + Camera.onPostRender -= m_onPostRenderHandler; + } + + private static void OnRender(Camera _) + { + DebugGL.Drawer.DrawGL(); + } + + private IEnumerator OnRenderEndRoutine() + { + while (enabled) + { + yield return m_waitForEndOfFrame; + + DebugGL.Drawer.ClearCommands(); + } + } + } +} diff --git a/Packages/UGF.DebugTools/Runtime/DebugGLComponent.cs.meta b/Packages/UGF.DebugTools/Runtime/DebugGLComponent.cs.meta new file mode 100644 index 0000000..ab49b08 --- /dev/null +++ b/Packages/UGF.DebugTools/Runtime/DebugGLComponent.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: f703d31518bf42139c3e84790d308364 +timeCreated: 1632318199 \ No newline at end of file diff --git a/Packages/UGF.DebugTools/Runtime/DebugGLDrawer.cs b/Packages/UGF.DebugTools/Runtime/DebugGLDrawer.cs index 57d8449..c60686e 100644 --- a/Packages/UGF.DebugTools/Runtime/DebugGLDrawer.cs +++ b/Packages/UGF.DebugTools/Runtime/DebugGLDrawer.cs @@ -8,7 +8,7 @@ namespace UGF.DebugTools.Runtime { public class DebugGLDrawer { - public bool Enable { get; set; } + public bool Enable { get; set; } = true; public IReadOnlyDictionary Shapes { get; } public IReadOnlyList Commands { get; } @@ -53,8 +53,6 @@ public void DrawGL() if (Enable) { DrawGLCommands(m_commands); - - m_commands.Clear(); } } diff --git a/Packages/UGF.DebugTools/Runtime/DebugGLSettings.cs b/Packages/UGF.DebugTools/Runtime/DebugGLSettings.cs deleted file mode 100644 index f725d3d..0000000 --- a/Packages/UGF.DebugTools/Runtime/DebugGLSettings.cs +++ /dev/null @@ -1,13 +0,0 @@ -using UGF.CustomSettings.Runtime; - -namespace UGF.DebugTools.Runtime -{ - public static class DebugGLSettings - { - public static CustomSettingsPackage Settings { get; } = new CustomSettingsPackage - ( - "UGF.DebugTools", - nameof(DebugGLSettings) - ); - } -} diff --git a/Packages/UGF.DebugTools/Runtime/DebugGLSettings.cs.meta b/Packages/UGF.DebugTools/Runtime/DebugGLSettings.cs.meta deleted file mode 100644 index 2d4dfcd..0000000 --- a/Packages/UGF.DebugTools/Runtime/DebugGLSettings.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 2c2be1f554bd4c68806263b380afb2e8 -timeCreated: 1632005848 \ No newline at end of file diff --git a/Packages/UGF.DebugTools/Runtime/DebugGLSettingsAsset.cs b/Packages/UGF.DebugTools/Runtime/DebugGLSettingsAsset.cs deleted file mode 100644 index 458a75b..0000000 --- a/Packages/UGF.DebugTools/Runtime/DebugGLSettingsAsset.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System.Collections.Generic; -using UGF.CustomSettings.Runtime; -using UGF.EditorTools.Runtime.IMGUI.AssetReferences; -using UnityEngine; - -namespace UGF.DebugTools.Runtime -{ - public class DebugGLSettingsAsset : CustomSettingsData - { - [SerializeField] private bool m_enable = true; - [SerializeField] private Material m_defaultMaterial; - [SerializeField] private List> m_shapes = new List>(); - - public bool Enable { get { return m_enable; } set { m_enable = value; } } - public Material DefaultMaterial { get { return m_defaultMaterial; } set { m_defaultMaterial = value; } } - public List> Shapes { get { return m_shapes; } } - } -} diff --git a/Packages/UGF.DebugTools/Runtime/DebugGLSettingsAsset.cs.meta b/Packages/UGF.DebugTools/Runtime/DebugGLSettingsAsset.cs.meta deleted file mode 100644 index 9b6e43a..0000000 --- a/Packages/UGF.DebugTools/Runtime/DebugGLSettingsAsset.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 821f8acfec44421fb4d60606a716694b -timeCreated: 1632005866 \ No newline at end of file diff --git a/Packages/UGF.DebugTools/Runtime/DebugGLUtility.cs b/Packages/UGF.DebugTools/Runtime/DebugGLUtility.cs index fe8f38e..3f6ba21 100644 --- a/Packages/UGF.DebugTools/Runtime/DebugGLUtility.cs +++ b/Packages/UGF.DebugTools/Runtime/DebugGLUtility.cs @@ -6,13 +6,6 @@ namespace UGF.DebugTools.Runtime { public static class DebugGLUtility { - public static Material DefaultMaterial { get; } - - static DebugGLUtility() - { - DefaultMaterial = new Material(Shader.Find("Hidden/Internal-Colored")); - } - public static DebugGLShape CreateShapeLineWire() { var shape = new DebugGLShape(DebugGLMode.Line); @@ -153,5 +146,12 @@ public static void AddVerticesQuad(ICollection vertices, Matrix4x4 matr vertices.Add(matrix.MultiplyPoint3x4(new Vector3(size, 0F, size))); vertices.Add(matrix.MultiplyPoint3x4(new Vector3(size, 0F, -size))); } + + public static Material CreateDefaultMaterial() + { + Shader shader = Shader.Find("Hidden/Internal-Colored"); + + return new Material(shader); + } } } diff --git a/Packages/UGF.DebugTools/Runtime/DebugUI.cs b/Packages/UGF.DebugTools/Runtime/DebugUI.cs index 0f57bf7..bbdfcd9 100644 --- a/Packages/UGF.DebugTools/Runtime/DebugUI.cs +++ b/Packages/UGF.DebugTools/Runtime/DebugUI.cs @@ -1,55 +1,7 @@ -using UGF.EditorTools.Runtime.IMGUI.AssetReferences; -using UnityEngine; -using Object = UnityEngine.Object; - -namespace UGF.DebugTools.Runtime +namespace UGF.DebugTools.Runtime { public static partial class DebugUI { public static DebugUIDrawer Drawer { get; } = new DebugUIDrawer(); - - static DebugUI() - { - DebugUISettingsAsset settings = DebugUISettings.Settings.GetData(); - - Drawer.Enable = settings.Enable; - Drawer.Scale = Vector2.one * settings.Scale; - - if (settings.Skin != null) - { - Drawer.SetSkin(settings.Skin); - } - - for (int i = 0; i < settings.Drawers.Count; i++) - { - AssetReference reference = settings.Drawers[i]; - IDebugUIDrawer drawer = reference.Asset.Build(); - - Drawer.Add(reference.Guid, drawer); - } - - OnCreateExecuter(); - } - - private static void OnCreateExecuter() - { - var executer = new GameObject(nameof(DebugUIEventComponent)).AddComponent(); - - executer.DrawGUI += OnDrawGUI; - - Object.DontDestroyOnLoad(executer.gameObject); - } - - private static void OnDrawGUI() - { - Drawer.DrawGUI(); - - DebugUIContentCache.Reset(); - } - - [RuntimeInitializeOnLoadMethod] - private static void Initialize() - { - } } } diff --git a/Packages/UGF.DebugTools/Runtime/DebugUIComponent.cs b/Packages/UGF.DebugTools/Runtime/DebugUIComponent.cs new file mode 100644 index 0000000..94b26d3 --- /dev/null +++ b/Packages/UGF.DebugTools/Runtime/DebugUIComponent.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using UGF.EditorTools.Runtime.IMGUI.AssetReferences; +using UnityEngine; + +namespace UGF.DebugTools.Runtime +{ + [AddComponentMenu("Unity Game Framework/Debug/Debug UI", 2000)] + public class DebugUIComponent : MonoBehaviour + { + [SerializeField] private bool m_enable = true; + [SerializeField] private float m_scale = 1F; + [SerializeField] private GUISkin m_skin; + [SerializeField] private List> m_drawers = new List>(); + + public bool Enable { get { return m_enable; } set { m_enable = value; } } + public float Scale { get { return m_scale; } set { m_scale = value; } } + public GUISkin Skin { get { return m_skin; } set { m_skin = value; } } + public List> Drawers { get { return m_drawers; } } + + private void Start() + { + DebugUI.Drawer.Enable = m_enable; + DebugUI.Drawer.Scale = Vector2.one * m_scale; + + if (m_skin != null) + { + DebugUI.Drawer.SetSkin(m_skin); + } + + for (int i = 0; i < m_drawers.Count; i++) + { + AssetReference reference = m_drawers[i]; + + DebugUI.Drawer.Add(reference.Guid, reference.Asset.Build()); + } + } + + private void OnDestroy() + { + for (int i = m_drawers.Count - 1; i >= 0; i--) + { + AssetReference reference = m_drawers[i]; + + DebugUI.Drawer.Remove(reference.Guid); + } + } + + private void OnGUI() + { + DebugUI.Drawer.DrawGUI(); + DebugUIContentCache.Reset(); + } + } +} diff --git a/Packages/UGF.DebugTools/Runtime/DebugUIComponent.cs.meta b/Packages/UGF.DebugTools/Runtime/DebugUIComponent.cs.meta new file mode 100644 index 0000000..fcc0c1d --- /dev/null +++ b/Packages/UGF.DebugTools/Runtime/DebugUIComponent.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: cc789d3dfe8e4c90ae18d29e6a687166 +timeCreated: 1632318211 \ No newline at end of file diff --git a/Packages/UGF.DebugTools/Runtime/DebugUIDrawer.cs b/Packages/UGF.DebugTools/Runtime/DebugUIDrawer.cs index 63665f3..a0ab138 100644 --- a/Packages/UGF.DebugTools/Runtime/DebugUIDrawer.cs +++ b/Packages/UGF.DebugTools/Runtime/DebugUIDrawer.cs @@ -8,7 +8,7 @@ namespace UGF.DebugTools.Runtime { public class DebugUIDrawer { - public bool Enable { get; set; } + public bool Enable { get; set; } = true; public IReadOnlyDictionary Drawers { get; } public Vector2 Scale { get; set; } = Vector2.one; public GUISkin Skin { get { return HasSkin ? m_skin : throw new ArgumentException("Value not specified."); } } diff --git a/Packages/UGF.DebugTools/Runtime/DebugUIEventComponent.cs b/Packages/UGF.DebugTools/Runtime/DebugUIEventComponent.cs deleted file mode 100644 index f3e6e44..0000000 --- a/Packages/UGF.DebugTools/Runtime/DebugUIEventComponent.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using UnityEngine; - -namespace UGF.DebugTools.Runtime -{ - [AddComponentMenu("")] - public class DebugUIEventComponent : MonoBehaviour - { - public event Action DrawGUI; - - private void OnGUI() - { - DrawGUI?.Invoke(); - } - } -} diff --git a/Packages/UGF.DebugTools/Runtime/DebugUIEventComponent.cs.meta b/Packages/UGF.DebugTools/Runtime/DebugUIEventComponent.cs.meta deleted file mode 100644 index d22f17b..0000000 --- a/Packages/UGF.DebugTools/Runtime/DebugUIEventComponent.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: c6bc30b21e214b88b85157bc639a2efc -timeCreated: 1631362550 \ No newline at end of file diff --git a/Packages/UGF.DebugTools/Runtime/DebugUISettings.cs b/Packages/UGF.DebugTools/Runtime/DebugUISettings.cs deleted file mode 100644 index b46da1e..0000000 --- a/Packages/UGF.DebugTools/Runtime/DebugUISettings.cs +++ /dev/null @@ -1,13 +0,0 @@ -using UGF.CustomSettings.Runtime; - -namespace UGF.DebugTools.Runtime -{ - public static class DebugUISettings - { - public static CustomSettingsPackage Settings { get; } = new CustomSettingsPackage - ( - "UGF.DebugTools", - nameof(DebugUISettings) - ); - } -} diff --git a/Packages/UGF.DebugTools/Runtime/DebugUISettings.cs.meta b/Packages/UGF.DebugTools/Runtime/DebugUISettings.cs.meta deleted file mode 100644 index 20b128a..0000000 --- a/Packages/UGF.DebugTools/Runtime/DebugUISettings.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 61503e38e9c34eb0bc31084f43276d59 -timeCreated: 1631361640 \ No newline at end of file diff --git a/Packages/UGF.DebugTools/Runtime/DebugUISettingsAsset.cs b/Packages/UGF.DebugTools/Runtime/DebugUISettingsAsset.cs deleted file mode 100644 index 413d29f..0000000 --- a/Packages/UGF.DebugTools/Runtime/DebugUISettingsAsset.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.Collections.Generic; -using UGF.CustomSettings.Runtime; -using UGF.EditorTools.Runtime.IMGUI.AssetReferences; -using UnityEngine; - -namespace UGF.DebugTools.Runtime -{ - public class DebugUISettingsAsset : CustomSettingsData - { - [SerializeField] private bool m_enable = true; - [SerializeField] private float m_scale = 1F; - [SerializeField] private GUISkin m_skin; - [SerializeField] private List> m_drawers = new List>(); - - public bool Enable { get { return m_enable; } set { m_enable = value; } } - public float Scale { get { return m_scale; } set { m_scale = value; } } - public GUISkin Skin { get { return m_skin; } set { m_skin = value; } } - public List> Drawers { get { return m_drawers; } } - } -} diff --git a/Packages/UGF.DebugTools/Runtime/DebugUISettingsAsset.cs.meta b/Packages/UGF.DebugTools/Runtime/DebugUISettingsAsset.cs.meta deleted file mode 100644 index ba99c00..0000000 --- a/Packages/UGF.DebugTools/Runtime/DebugUISettingsAsset.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: f7f428396e29478b9f069a749c847b49 -timeCreated: 1631361655 \ No newline at end of file diff --git a/Packages/UGF.DebugTools/Runtime/UGF.DebugTools.Runtime.asmdef b/Packages/UGF.DebugTools/Runtime/UGF.DebugTools.Runtime.asmdef index e3efc35..76d5bc7 100644 --- a/Packages/UGF.DebugTools/Runtime/UGF.DebugTools.Runtime.asmdef +++ b/Packages/UGF.DebugTools/Runtime/UGF.DebugTools.Runtime.asmdef @@ -2,7 +2,6 @@ "name": "UGF.DebugTools.Runtime", "rootNamespace": "UGF.DebugTools.Runtime", "references": [ - "GUID:ff62901452104d14cae29322ac133c05", "GUID:088d00b6871540e44bce58af1a3f0f17", "GUID:6c7389a7d4bbed54e96eb1e71a69798e" ], diff --git a/Packages/UGF.DebugTools/package.json b/Packages/UGF.DebugTools/package.json index c09062c..12fc8a9 100644 --- a/Packages/UGF.DebugTools/package.json +++ b/Packages/UGF.DebugTools/package.json @@ -19,9 +19,8 @@ "registry": "https://unitygameframework.jfrog.io/artifactory/api/npm/default" }, "dependencies": { - "com.ugf.customsettings": "3.4.1", "com.ugf.editortools": "1.13.1", "com.ugf.builder": "2.0.1", "com.unity.modules.imgui": "1.0.0" } -} \ No newline at end of file +} diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index df7c968..3a5cf47 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -7,22 +7,11 @@ "dependencies": {}, "url": "https://unitygameframework.jfrog.io/artifactory/api/npm/default" }, - "com.ugf.customsettings": { - "version": "3.4.1", - "depth": 1, - "source": "registry", - "dependencies": { - "com.unity.modules.jsonserialize": "1.0.0", - "com.ugf.editortools": "1.7.0" - }, - "url": "https://unitygameframework.jfrog.io/artifactory/api/npm/default" - }, "com.ugf.debugtools": { "version": "file:UGF.DebugTools", "depth": 0, "source": "embedded", "dependencies": { - "com.ugf.customsettings": "3.4.1", "com.ugf.editortools": "1.13.1", "com.ugf.builder": "2.0.1", "com.unity.modules.imgui": "1.0.0"