using System.Collections; using System.Collections.Generic; using UnityEngine; /// /// Static class for adding More Debug funtions /// public static class DebugExtensions { /// /// Draws wireframe cube in scene view /// /// Centre of cube /// extent of cube (half of size) /// Color of lines /// Amount of time cube is displayed /// Should cube be obsured by otherobjects public static void DrawCube(Vector3 Position, Vector3 Extent, Color color, float duration, bool depthTest = true, bool isGizmo = false) { Vector3 min = Position - Extent; Vector3 max = Position + Extent; if (isGizmo) { Color oldColor = Gizmos.color; Gizmos.color = color; Gizmos.DrawWireCube(Position, Extent * 2); Gizmos.color = oldColor; return; } //Draw bottom Square Debug.DrawLine(new Vector3(min.x, min.y, min.z), new Vector3(min.x, min.y, max.z), color, duration, depthTest); Debug.DrawLine(new Vector3(min.x, min.y, max.z), new Vector3(max.x, min.y, max.z), color, duration, depthTest); Debug.DrawLine(new Vector3(max.x, min.y, max.z), new Vector3(max.x, min.y, min.z), color, duration, depthTest); Debug.DrawLine(new Vector3(max.x, min.y, min.z), new Vector3(min.x, min.y, min.z), color, duration, depthTest); //top square Debug.DrawLine(new Vector3(min.x, max.y, min.z), new Vector3(min.x, max.y, max.z), color, duration, depthTest); Debug.DrawLine(new Vector3(min.x, max.y, max.z), new Vector3(max.x, max.y, max.z), color, duration, depthTest); Debug.DrawLine(new Vector3(max.x, max.y, max.z), new Vector3(max.x, max.y, min.z), color, duration, depthTest); Debug.DrawLine(new Vector3(max.x, max.y, min.z), new Vector3(min.x, max.y, min.z), color, duration, depthTest); //connect top and bottom Debug.DrawLine(new Vector3(min.x, min.y, min.z), new Vector3(min.x, max.y, min.z), color, duration, depthTest); Debug.DrawLine(new Vector3(min.x, min.y, max.z), new Vector3(min.x, max.y, max.z), color, duration, depthTest); Debug.DrawLine(new Vector3(max.x, min.y, max.z), new Vector3(max.x, max.y, max.z), color, duration, depthTest); Debug.DrawLine(new Vector3(max.x, min.y, min.z), new Vector3(max.x, max.y, min.z), color, duration, depthTest); } /// /// Draws wireframe cube in scene view /// /// Centre of cube /// extent of cube (half of size) /// Color of lines /// Amount of time cube is displayed public static void DrawCube(Vector3 Position, float Extent, Color color, float duration, bool isGizmo = false) { //Call overload funtion DrawCube(Position, Vector3.one * Extent, color, duration,false); } /// /// Draws wireframe around a RectTransform in scene view /// /// Rect to draw around /// Color of the lines /// How long the lines should be visible for /// Should the lines be obscured by objects closer to the camera public static void DrawRect(Rect rect, Color color, float duration = 0.0f, bool depthTest = false) { Debug.DrawLine(new Vector3(rect.min.x, rect.max.y, 0), new Vector3(rect.max.x, rect.max.y, 0), color, duration, depthTest); Debug.DrawLine(new Vector3(rect.max.x, rect.max.y, 0), new Vector3(rect.max.x, rect.min.y, 0), color, duration, depthTest); Debug.DrawLine(new Vector3(rect.max.x, rect.min.y, 0), new Vector3(rect.min.x, rect.min.y, 0), color, duration, depthTest); Debug.DrawLine(new Vector3(rect.min.x, rect.min.y, 0), new Vector3(rect.min.x, rect.max.y, 0), color, duration, depthTest); } /// /// Draws wireframe around a RectTransform in scene view /// /// Rect transform to draw around /// Color of the lines /// How long the lines should be visible for /// Should the lines be obscured by objects closer to the camera public static void DrawRect(RectTransform transform, Color color, float duration = 0.0f, bool depthTest = false) { Rect rect = transform.GlobalRect(); DrawRect(rect, color, duration, depthTest); } }//End DebugExtentions