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); } } }