A game about forced loneliness, made by TACStudios
1namespace UnityEngine.Rendering 2{ 3 /// <summary> 4 /// Utility class for debug overlay coordinates. 5 /// </summary> 6 public class DebugOverlay 7 { 8 /// <summary>Current x coordinate.</summary> 9 public int x { get; private set; } 10 /// <summary>Current y coordinate.</summary> 11 public int y { get; private set; } 12 /// <summary>Current overlay size.</summary> 13 public int overlaySize { get; private set; } 14 15 int m_InitialPositionX; 16 int m_ScreenWidth; 17 18 /// <summary> 19 /// Start rendering overlay. 20 /// </summary> 21 /// <param name="initialX">Initial x position.</param> 22 /// <param name="initialY">Initial y position.</param> 23 /// <param name="overlaySize">Size of overlays between 0 and 1.</param> 24 /// <param name="screenWidth">Width of the screen.</param> 25 public void StartOverlay(int initialX, int initialY, int overlaySize, int screenWidth) 26 { 27 x = initialX; 28 y = initialY; 29 this.overlaySize = overlaySize; 30 31 m_InitialPositionX = initialX; 32 m_ScreenWidth = screenWidth; 33 } 34 35 /// <summary> 36 /// Increment coordinates to the next overlay and return the current overlay rect. 37 /// </summary> 38 /// <param name="aspect">Aspect of the current overlay.</param> 39 /// <returns>Returns a rect of the current overlay.</returns> 40 public Rect Next(float aspect = 1.0f) 41 { 42 int overlayWidth = (int)(overlaySize * aspect); 43 44 if ((x + overlayWidth) > m_ScreenWidth && x > m_InitialPositionX) 45 { 46 x = m_InitialPositionX; 47 y -= overlaySize; 48 } 49 50 Rect rect = new Rect(x, y, overlayWidth, overlaySize); 51 52 x += overlayWidth; 53 54 return rect; 55 } 56 57 /// <summary> 58 /// Setup the viewport for the current overlay. 59 /// </summary> 60 /// <param name="cmd">Command buffer used to setup viewport.</param> 61 public void SetViewport(CommandBuffer cmd) 62 { 63 cmd.SetViewport(new Rect(x, y, overlaySize, overlaySize)); 64 } 65 } 66}