Advertisement
Pro_Unit

DebugColorDecorator

Mar 10th, 2022
728
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.29 KB | None | 0 0
  1. using UnityEngine;
  2.  
  3. namespace Supernova.Extensions
  4. {
  5.     public interface IDebugColorDecorator
  6.     {
  7.         string DecorateName(string name);
  8.         string DecorateValue(object value);
  9.     }
  10.     public abstract class DebugColorDecorator<T> : IDebugColorDecorator
  11.     {
  12.         public virtual string DecorateName(string name) =>
  13.             name.ToHexColor("87d1f5");
  14.  
  15.         protected virtual string DecorateValue(T value) =>
  16.             value.ToString().ToHexColor("aabe73");
  17.  
  18.         public string DecorateValue(object value) =>
  19.             DecorateValue((T) value);
  20.     }
  21.  
  22.     public class IntDebugColorDecorator : DebugColorDecorator<int> { }
  23.     public class FloatDebugColorDecorator : DebugColorDecorator<float> { }
  24.     public class DoubleDebugColorDecorator : DebugColorDecorator<double> { }
  25.     public class LongDebugColorDecorator : DebugColorDecorator<long> { }
  26.  
  27.     public class StringDebugColorDecorator : DebugColorDecorator<string>
  28.     {
  29.         protected override string DecorateValue(string value) =>
  30.             value.ToHexColor("cd9069");
  31.     }
  32.     public class ColorDebugColorDecorator : DebugColorDecorator<Color>
  33.     {
  34.         protected override string DecorateValue(Color value) =>
  35.             ColorUtility.ToHtmlStringRGBA(value).ToColor(value);
  36.     }
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement