|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
/// <summary>
|
|
/// Static class for adding More Debug funtions
|
|
/// </summary>
|
|
public static class DebugExtensions
|
|
{
|
|
|
|
/// <summary>
|
|
/// Draws wireframe cube in scene view
|
|
/// </summary>
|
|
/// <param name="Position">Centre of cube</param>
|
|
/// <param name="Extent">extent of cube (half of size)</param>
|
|
/// <param name="color">Color of lines</param>
|
|
/// <param name="duration">Amount of time cube is displayed</param>
|
|
/// <param name="depthTest">Should cube be obsured by otherobjects</param>
|
|
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);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Draws wireframe cube in scene view
|
|
/// </summary>
|
|
/// <param name="Position">Centre of cube</param>
|
|
/// <param name="Extent">extent of cube (half of size)</param>
|
|
/// <param name="color">Color of lines</param>
|
|
/// <param name="duration">Amount of time cube is displayed</param>
|
|
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);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Draws wireframe around a RectTransform in scene view
|
|
/// </summary>
|
|
/// <param name="rect">Rect to draw around</param>
|
|
/// <param name="color">Color of the lines</param>
|
|
/// <param name="duration">How long the lines should be visible for</param>
|
|
/// <param name="depthTest">Should the lines be obscured by objects closer to the camera</param>
|
|
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);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Draws wireframe around a RectTransform in scene view
|
|
/// </summary>
|
|
/// <param name="transform">Rect transform to draw around</param>
|
|
/// <param name="color">Color of the lines</param>
|
|
/// <param name="duration">How long the lines should be visible for</param>
|
|
/// <param name="depthTest">Should the lines be obscured by objects closer to the camera</param>
|
|
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
|