Mirror of Svelto.ECS because we're a fan of it
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

166 lines
4.3KB

  1. using System;
  2. using System.Diagnostics;
  3. using System.Text;
  4. using Debug = UnityEngine.Debug;
  5. public static class FastConcatUtility
  6. {
  7. static readonly StringBuilder _stringBuilder = new StringBuilder(256);
  8. public static string FastConcat(this string str1, string str2)
  9. {
  10. lock (_stringBuilder)
  11. {
  12. _stringBuilder.Length = 0;
  13. _stringBuilder.Append(str1);
  14. _stringBuilder.Append(str2);
  15. return _stringBuilder.ToString();
  16. }
  17. }
  18. public static string FastConcat(this string str1, string str2, string str3)
  19. {
  20. lock (_stringBuilder)
  21. {
  22. _stringBuilder.Length = 0;
  23. _stringBuilder.Append(str1);
  24. _stringBuilder.Append(str2);
  25. _stringBuilder.Append(str3);
  26. return _stringBuilder.ToString();
  27. }
  28. }
  29. public static string FastConcat(this string str1, string str2, string str3, string str4)
  30. {
  31. lock (_stringBuilder)
  32. {
  33. _stringBuilder.Length = 0;
  34. _stringBuilder.Append(str1);
  35. _stringBuilder.Append(str2);
  36. _stringBuilder.Append(str3);
  37. _stringBuilder.Append(str4);
  38. return _stringBuilder.ToString();
  39. }
  40. }
  41. public static string FastConcat(this string str1, string str2, string str3, string str4, string str5)
  42. {
  43. lock (_stringBuilder)
  44. {
  45. _stringBuilder.Length = 0;
  46. _stringBuilder.Append(str1);
  47. _stringBuilder.Append(str2);
  48. _stringBuilder.Append(str3);
  49. _stringBuilder.Append(str4);
  50. _stringBuilder.Append(str5);
  51. return _stringBuilder.ToString();
  52. }
  53. }
  54. }
  55. namespace Utility
  56. {
  57. public static class Console
  58. {
  59. static StringBuilder _stringBuilder = new StringBuilder(256);
  60. public static void Log(string txt)
  61. {
  62. Debug.Log(txt);
  63. }
  64. public static void LogError(string txt)
  65. {
  66. string toPrint;
  67. lock (_stringBuilder)
  68. {
  69. _stringBuilder.Length = 0;
  70. _stringBuilder.Append("-!!!!!!-> ");
  71. _stringBuilder.Append(txt);
  72. toPrint = _stringBuilder.ToString();
  73. }
  74. Debug.LogError(toPrint);
  75. }
  76. public static void LogException(Exception e)
  77. {
  78. LogException(e, null);
  79. }
  80. public static void LogException(Exception e, UnityEngine.Object obj)
  81. {
  82. string toPrint;
  83. lock (_stringBuilder)
  84. {
  85. _stringBuilder.Length = 0;
  86. _stringBuilder.Append("-!!!!!!-> ").Append(e);
  87. toPrint = _stringBuilder.ToString();
  88. }
  89. Exception ex = new Exception(e.ToString());
  90. Debug.Log(toPrint);
  91. Debug.LogException(ex, obj);
  92. }
  93. public static void LogWarning(string txt)
  94. {
  95. string toPrint;
  96. lock (_stringBuilder)
  97. {
  98. _stringBuilder.Length = 0;
  99. _stringBuilder.Append("------> ");
  100. _stringBuilder.Append(txt);
  101. toPrint = _stringBuilder.ToString();
  102. }
  103. Debug.LogWarning(toPrint);
  104. }
  105. /// <summary>
  106. /// This function should never be used explicitly
  107. /// </summary>
  108. /// <param name="txt"></param>
  109. public static void SystemLog(string txt)
  110. {
  111. string toPrint;
  112. lock (_stringBuilder)
  113. {
  114. string currentTimeString = DateTime.UtcNow.ToLongTimeString(); //ensure includes seconds
  115. string processTimeString = (DateTime.Now - Process.GetCurrentProcess().StartTime).ToString();
  116. _stringBuilder.Length = 0;
  117. _stringBuilder.Append("[").Append(currentTimeString);
  118. _stringBuilder.Append("][").Append(processTimeString);
  119. _stringBuilder.Length = _stringBuilder.Length - 3; //remove some precision that we don't need
  120. _stringBuilder.Append("] ").AppendLine(txt);
  121. toPrint = _stringBuilder.ToString();
  122. }
  123. #if !UNITY_EDITOR
  124. System.Console.WriteLine(toPrint);
  125. #else
  126. Debug.Log(toPrint);
  127. #endif
  128. }
  129. }
  130. }