diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..e69de29
diff --git a/CHANGELOG.md.meta b/CHANGELOG.md.meta
new file mode 100644
index 0000000..f962e1d
--- /dev/null
+++ b/CHANGELOG.md.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: e6c6cddf31a3c3d44a57d6efdc7b7be7
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Documentation.meta b/Documentation.meta
new file mode 100644
index 0000000..b7da7dc
--- /dev/null
+++ b/Documentation.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c55cf6373cd5d0a45b3c601dbc6bf11a
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Documentation/debugdrawex.md b/Documentation/debugdrawex.md
new file mode 100644
index 0000000..e69de29
diff --git a/Documentation/debugdrawex.md.meta b/Documentation/debugdrawex.md.meta
new file mode 100644
index 0000000..f4e043e
--- /dev/null
+++ b/Documentation/debugdrawex.md.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: a08517034b30e15439e41d0934ba3e65
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..e69de29
diff --git a/LICENSE.md.meta b/LICENSE.md.meta
new file mode 100644
index 0000000..5041a60
--- /dev/null
+++ b/LICENSE.md.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 348290d45f68f6849987b7adcf4a837e
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/README.md.meta b/README.md.meta
new file mode 100644
index 0000000..5d916b3
--- /dev/null
+++ b/README.md.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 88ec24e6589d20b4c96ef50762d888c1
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime.meta b/Runtime.meta
new file mode 100644
index 0000000..de6d3c6
--- /dev/null
+++ b/Runtime.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7a43c48b7fbcd304882367535b95899c
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/DebugDrawEx.meta b/Runtime/DebugDrawEx.meta
new file mode 100644
index 0000000..45f6d1e
--- /dev/null
+++ b/Runtime/DebugDrawEx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8cf6f82e62b403b48b531af84b48251c
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/DebugDrawEx/DebugDraw.cs b/Runtime/DebugDrawEx/DebugDraw.cs
new file mode 100644
index 0000000..b41fef9
--- /dev/null
+++ b/Runtime/DebugDrawEx/DebugDraw.cs
@@ -0,0 +1,142 @@
+using System.ComponentModel;
+using UnityEngine;
+
+namespace DebugDrawEx
+{
+ public static class DebugDraw
+ {
+ ///
+ /// Draws a line between specified start and end points.
+ ///
+ /// Point in world space where the line should start.
+ /// Point in world space where the line should end.
+ /// Color of the line.
+ /// How long the line should be visible for.
+ /// Should the line be obscured by objects closer to the camera?
+ public static void DrawLine(Vector3 start, Vector3 end)
+ {
+ bool depthTest = true;
+ float duration = 0.0f;
+ Color white = Color.white;
+ DrawLine(start, end, white, duration, depthTest);
+ }
+
+ ///
+ /// Draws a line between specified start and end points.
+ ///
+ /// Point in world space where the line should start.
+ /// Point in world space where the line should end.
+ /// Color of the line.
+ /// How long the line should be visible for.
+ /// Should the line be obscured by objects closer to the camera?
+ public static void DrawLine(Vector3 start, Vector3 end, Color color)
+ {
+ bool depthTest = true;
+ float duration = 0.0f;
+ DrawLine(start, end, color, duration, depthTest);
+ }
+
+ ///
+ /// Draws a line between specified start and end points.
+ ///
+ /// Point in world space where the line should start.
+ /// Point in world space where the line should end.
+ /// Color of the line.
+ /// How long the line should be visible for.
+ /// Should the line be obscured by objects closer to the camera?
+ public static void DrawLine(Vector3 start, Vector3 end, Color color, float duration)
+ {
+ bool depthTest = true;
+ DrawLine(start, end, color, duration, depthTest);
+ }
+
+ ///
+ /// Draws a line between specified start and end points.
+ ///
+ /// Point in world space where the line should start.
+ /// Point in world space where the line should end.
+ /// Color of the line.
+ /// How long the line should be visible for.
+ /// Should the line be obscured by objects closer to the camera?
+ public static void DrawLine(
+ Vector3 start,
+ Vector3 end,
+ [DefaultValue("Color.white")] Color color,
+ [DefaultValue("0.0f")] float duration,
+ [DefaultValue("true")] bool depthTest)
+ {
+ var line = new Line
+ {
+ Duration = duration,
+ DepthTest = depthTest
+ };
+ line.AddLine(start, end, color);
+
+ Graphics.DrawMesh(line.Mesh, Vector3.zero, Quaternion.identity, line.Mat,
+ 0 , null, 0, null, false,false);
+ }
+
+ ///
+ /// Draws a line from start to start + dir in world coordinates.
+ ///
+ /// Point in world space where the ray should start.
+ /// Direction and length of the ray.
+ /// Color of the drawn line.
+ /// How long the line will be visible for (in seconds).
+ /// Should the line be obscured by other objects closer to the camera?
+ public static void DrawRay(Vector3 start, Vector3 dir)
+ {
+ bool depthTest = true;
+ float duration = 0.0f;
+ Color white = Color.white;
+ DrawRay(start, dir, white, duration, depthTest);
+ }
+
+ ///
+ /// Draws a line from start to start + dir in world coordinates.
+ ///
+ /// Point in world space where the ray should start.
+ /// Direction and length of the ray.
+ /// Color of the drawn line.
+ /// How long the line will be visible for (in seconds).
+ /// Should the line be obscured by other objects closer to the camera?
+ public static void DrawRay(Vector3 start, Vector3 dir, Color color)
+ {
+ bool depthTest = true;
+ float duration = 0.0f;
+ DrawRay(start, dir, color, duration, depthTest);
+ }
+
+ ///
+ /// Draws a line from start to start + dir in world coordinates.
+ ///
+ /// Point in world space where the ray should start.
+ /// Direction and length of the ray.
+ /// Color of the drawn line.
+ /// How long the line will be visible for (in seconds).
+ /// Should the line be obscured by other objects closer to the camera?
+ public static void DrawRay(Vector3 start, Vector3 dir, Color color, float duration)
+ {
+ bool depthTest = true;
+ DrawRay(start, dir, color, duration, depthTest);
+ }
+
+ ///
+ /// Draws a line from start to start + dir in world coordinates.
+ ///
+ /// Point in world space where the ray should start.
+ /// Direction and length of the ray.
+ /// Color of the drawn line.
+ /// How long the line will be visible for (in seconds).
+ /// Should the line be obscured by other objects closer to the camera?
+ public static void DrawRay(
+ Vector3 start,
+ Vector3 dir,
+ [DefaultValue("Color.white")] Color color,
+ [DefaultValue("0.0f")] float duration,
+ [DefaultValue("true")] bool depthTest)
+ {
+ DrawLine(start, start + dir, color, duration, depthTest);
+ }
+ }
+}
diff --git a/Runtime/DebugDrawEx/DebugDraw.cs.meta b/Runtime/DebugDrawEx/DebugDraw.cs.meta
new file mode 100644
index 0000000..fa1d4b6
--- /dev/null
+++ b/Runtime/DebugDrawEx/DebugDraw.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 816219397a19e3d459204148c5e855aa
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/DebugDrawEx/Line.cs b/Runtime/DebugDrawEx/Line.cs
new file mode 100644
index 0000000..34d8446
--- /dev/null
+++ b/Runtime/DebugDrawEx/Line.cs
@@ -0,0 +1,65 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace DebugDrawEx
+{
+ public class Line
+ {
+ public Material Mat { get; set; }
+ public Mesh Mesh { get; private set; }
+ public bool DepthTest { get; set; }
+ public float Duration { get; set; }
+ private readonly List _vertices;
+ private readonly List _colors;
+ private readonly List _indices;
+ private static readonly int ZTest = Shader.PropertyToID("_ZTest");
+
+ public Line()
+ {
+ _vertices = new List();
+ _colors = new List();
+ _indices = new List();
+ }
+
+ public void AddLine(Vector3 from, Vector3 to, Color color)
+ {
+ _vertices.Add(from);
+ _vertices.Add(to);
+ _colors.Add(color);
+ _colors.Add(color);
+ _indices.Add(_vertices.Count - 2);
+ _indices.Add(_vertices.Count - 1);
+ Mesh = CreateMesh();
+
+ if (Duration != 0)
+ CreateGameObjectLine(from, to, color);
+ }
+
+ private void CreateGameObjectLine(Vector3 from, Vector3 to, Color color)
+ {
+ var go = new GameObject("line");
+ go.hideFlags = HideFlags.HideAndDontSave;
+ var lineMonoBehaviour = go.AddComponent();
+ lineMonoBehaviour.Point1 = from;
+ lineMonoBehaviour.Point2 = to;
+ lineMonoBehaviour.Color = color;
+ lineMonoBehaviour.Duration = Duration;
+ lineMonoBehaviour.DepthTest = DepthTest;
+ }
+
+ private Mesh CreateMesh()
+ {
+ var newMesh = new Mesh();
+ newMesh.MarkDynamic();
+
+ Mat = new Material(Shader.Find("Hidden/Internal-Colored"));
+ Mat.SetInt(ZTest, DepthTest ? 4 : 0);
+
+ newMesh.SetVertices(_vertices);
+ newMesh.SetColors(_colors);
+ newMesh.SetIndices(_indices.ToArray(), MeshTopology.Lines, 0);
+
+ return newMesh;
+ }
+ }
+}
diff --git a/Runtime/DebugDrawEx/Line.cs.meta b/Runtime/DebugDrawEx/Line.cs.meta
new file mode 100644
index 0000000..a6621d2
--- /dev/null
+++ b/Runtime/DebugDrawEx/Line.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 058673d64d6600b42a67a06926f156f0
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/DebugDrawEx/LineMonoBehaviour.cs b/Runtime/DebugDrawEx/LineMonoBehaviour.cs
new file mode 100644
index 0000000..005fd9e
--- /dev/null
+++ b/Runtime/DebugDrawEx/LineMonoBehaviour.cs
@@ -0,0 +1,22 @@
+using UnityEngine;
+
+namespace DebugDrawEx
+{
+ public class LineMonoBehaviour : MonoBehaviour
+ {
+ public Color Color { get; set; }
+ public Vector3 Point1 { get; set; }
+ public Vector3 Point2 { get; set; }
+ public float Duration { get; set; }
+ public bool DepthTest { get; set; }
+
+ private void Update()
+ {
+ Duration -= Time.unscaledDeltaTime;
+ if (Duration <= 0)
+ Destroy(gameObject);
+
+ DebugDraw.DrawLine(Point1, Point2, Color, 0, DepthTest);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Runtime/DebugDrawEx/LineMonoBehaviour.cs.meta b/Runtime/DebugDrawEx/LineMonoBehaviour.cs.meta
new file mode 100644
index 0000000..eb4f1cc
--- /dev/null
+++ b/Runtime/DebugDrawEx/LineMonoBehaviour.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: c00083303fe24687900c8c43b4960781
+timeCreated: 1650843949
\ No newline at end of file
diff --git a/Runtime/ropogames.debugdrawex.asmdef b/Runtime/ropogames.debugdrawex.asmdef
new file mode 100644
index 0000000..5ece832
--- /dev/null
+++ b/Runtime/ropogames.debugdrawex.asmdef
@@ -0,0 +1,14 @@
+{
+ "name": "ropogames.debugdrawex",
+ "rootNamespace": "",
+ "references": [],
+ "includePlatforms": [],
+ "excludePlatforms": [],
+ "allowUnsafeCode": false,
+ "overrideReferences": false,
+ "precompiledReferences": [],
+ "autoReferenced": true,
+ "defineConstraints": [],
+ "versionDefines": [],
+ "noEngineReferences": false
+}
\ No newline at end of file
diff --git a/Runtime/ropogames.debugdrawex.asmdef.meta b/Runtime/ropogames.debugdrawex.asmdef.meta
new file mode 100644
index 0000000..46e5acb
--- /dev/null
+++ b/Runtime/ropogames.debugdrawex.asmdef.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d54eab1b7df05cd4c9fca8a9694f8b4b
+AssemblyDefinitionImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Samples.meta b/Samples.meta
new file mode 100644
index 0000000..91a687e
--- /dev/null
+++ b/Samples.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 84f62d9166caf81419e22b56c719735d
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Samples/Scenes.meta b/Samples/Scenes.meta
new file mode 100644
index 0000000..add85b1
--- /dev/null
+++ b/Samples/Scenes.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1e7d738364c53f94697007d142cf3fe7
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Samples/Scenes/SampleScene.unity b/Samples/Scenes/SampleScene.unity
new file mode 100644
index 0000000..cef295e
--- /dev/null
+++ b/Samples/Scenes/SampleScene.unity
@@ -0,0 +1,534 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 9
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 0
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 705507994}
+ m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 12
+ m_GIWorkflowMode: 1
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 0
+ m_LightmapEditorSettings:
+ serializedVersion: 12
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAmbientOcclusion: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 2
+ m_BakeBackend: 1
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 500
+ m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 500
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 2
+ m_PVRDenoiserTypeDirect: 0
+ m_PVRDenoiserTypeIndirect: 0
+ m_PVRDenoiserTypeAO: 0
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVREnvironmentMIS: 0
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_LightProbeSampleCountMultiplier: 4
+ m_LightingDataAsset: {fileID: 0}
+ m_LightingSettings: {fileID: 0}
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &705507993
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 705507995}
+ - component: {fileID: 705507994}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!108 &705507994
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 705507993}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 1
+ m_Shape: 0
+ m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
+ m_Intensity: 1
+ m_Range: 10
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 1
+ m_LightShadowCasterMode: 0
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &705507995
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 705507993}
+ m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
+ m_LocalPosition: {x: 0, y: 3, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+--- !u!1 &963194225
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 963194228}
+ - component: {fileID: 963194227}
+ - component: {fileID: 963194226}
+ m_Layer: 0
+ m_Name: Main Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!81 &963194226
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 963194225}
+ m_Enabled: 1
+--- !u!20 &963194227
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 963194225}
+ 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: 1
+ height: 1
+ 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 &963194228
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 963194225}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 1, z: -10}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1073102029
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1073102033}
+ - component: {fileID: 1073102032}
+ - component: {fileID: 1073102031}
+ - component: {fileID: 1073102030}
+ m_Layer: 0
+ m_Name: Cube
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &1073102030
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1073102029}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1073102031
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1073102029}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1073102032
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1073102029}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1073102033
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1073102029}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.586}
+ 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!1 &1079336495
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1079336497}
+ - component: {fileID: 1079336496}
+ m_Layer: 0
+ m_Name: GameObject
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1079336496
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1079336495}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a613bbe57621c0c4bb4ff2524b932ffe, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &1079336497
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1079336495}
+ 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!1 &1534016060
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1534016064}
+ - component: {fileID: 1534016063}
+ - component: {fileID: 1534016062}
+ - component: {fileID: 1534016061}
+ m_Layer: 0
+ m_Name: Cube (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &1534016061
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1534016060}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1534016062
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1534016060}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1534016063
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1534016060}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1534016064
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1534016060}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 1.53, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
diff --git a/Samples/Scenes/SampleScene.unity.meta b/Samples/Scenes/SampleScene.unity.meta
new file mode 100644
index 0000000..952bd1e
--- /dev/null
+++ b/Samples/Scenes/SampleScene.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 9fc0d4010bbf28b4594072e72b8655ab
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Samples/Test.cs b/Samples/Test.cs
new file mode 100644
index 0000000..af58d81
--- /dev/null
+++ b/Samples/Test.cs
@@ -0,0 +1,24 @@
+using DebugDrawEx;
+using UnityEngine;
+
+public class Test : MonoBehaviour
+{
+ void Start()
+ {
+ var point1 = new Vector3(-3, 0, 0);
+ var point2 = new Vector3(3, 0, 0);
+ DebugDraw.DrawLine(point1, point2, Color.green, 5, true);
+ //Debug.DrawLine(point1, point2, Color.green, 1000, false);
+ //Debug.DrawLine(point1, point2);
+ }
+
+ void Update()
+ {
+ /*
+ var point1 = new Vector3(-3, 0, 0);
+ var point2 = new Vector3(3, 0, 0);
+ DebugDraw.DrawLine(point1, point2, Color.green, 0, true);
+ //Debug.DrawLine(point1, point2, Color.green, 1000, false);
+ */
+ }
+}
diff --git a/Samples/Test.cs.meta b/Samples/Test.cs.meta
new file mode 100644
index 0000000..7ec2b02
--- /dev/null
+++ b/Samples/Test.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a613bbe57621c0c4bb4ff2524b932ffe
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..60462bc
--- /dev/null
+++ b/package.json
@@ -0,0 +1,15 @@
+{
+ "name": "com.ropogames.debugdrawex",
+ "version": "0.1.0",
+ "displayName": "Debug Draw Ex",
+ "description": "Debug draw in runtime",
+ "keywords": [
+ "debug",
+ "log"
+ ],
+ "author": {
+ "name": "errorcode",
+ "email": "errorcode@mail.ru",
+ "url": "https://chilidoginteractive.com/"
+ }
+}
diff --git a/package.json.meta b/package.json.meta
new file mode 100644
index 0000000..bf8f0de
--- /dev/null
+++ b/package.json.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 35d85ff0009227d4889273c1bde83bb0
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant: