GeneralMethod.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using UnityEngine;
  6. /// <summary>
  7. /// 通用方法
  8. /// </summary>
  9. public class GeneralMethod
  10. {
  11. #region 常量
  12. /// <summary>
  13. /// 占位符文本
  14. /// </summary>
  15. private const string m_PlaceholderText = "<color=#FFFFFF00>-----</color>";
  16. /// <summary>
  17. /// 换行符文本
  18. /// </summary>
  19. private const string m_NewlineText = "\r\n";
  20. /// <summary>
  21. /// 分隔符
  22. /// </summary>
  23. private const string m_Separator = "&&";
  24. #endregion
  25. #region 属性定义
  26. /// <summary>
  27. /// 总文本信息
  28. /// </summary>
  29. private static string m_TotalMessageTxt;
  30. /// <summary>
  31. /// 缓存文本
  32. /// </summary>
  33. private static string[] m_CacheInterceptsTxt;
  34. #endregion
  35. /// <summary>
  36. /// 返回增加缩进后的字符串
  37. /// </summary>
  38. /// <param name="_msg"></param>
  39. /// <returns></returns>
  40. public static string ReturnsAnIndentString(string _msg)
  41. {
  42. if (string.IsNullOrEmpty(_msg))
  43. {
  44. return string.Empty;
  45. }
  46. m_TotalMessageTxt = string.Empty;
  47. m_CacheInterceptsTxt = _msg.Split(new[] { m_Separator }, StringSplitOptions.RemoveEmptyEntries);
  48. for (int i = 0; i < m_CacheInterceptsTxt.Length; i++)
  49. {
  50. m_TotalMessageTxt += m_PlaceholderText + m_CacheInterceptsTxt[i].Trim() + m_NewlineText;
  51. }
  52. m_TotalMessageTxt = m_TotalMessageTxt.Substring(0, m_TotalMessageTxt.Length - 2);
  53. return m_TotalMessageTxt;
  54. }
  55. #region 通关统计
  56. /// <summary>
  57. /// 获取当前角色的ID
  58. /// </summary>
  59. /// <returns></returns>
  60. public static string GetCurrentRoleNum()
  61. {
  62. return PlayerPrefs.GetString("StudentID");
  63. }
  64. /// <summary>
  65. /// 判断数据是否存在并返回
  66. /// </summary>
  67. /// <param name="_originalData"></param>
  68. /// <param name="_newData"></param>
  69. /// <returns></returns>
  70. private static string DeterminesWhetherDataExistAndReturn(string _originalData,string _newData)
  71. {
  72. string result = string.Empty;
  73. // 如果原始数据为空,则直接添加
  74. if (string.IsNullOrEmpty(_originalData))
  75. {
  76. result = _newData;
  77. }
  78. else
  79. {
  80. List<string> datas = _originalData.Split('、').ToList();
  81. if (datas.Contains(_newData))
  82. {
  83. result = _originalData;
  84. }
  85. else
  86. {
  87. datas.Add(_newData);
  88. result = string.Join("、", datas);
  89. }
  90. }
  91. return result;
  92. }
  93. #endregion
  94. /// <summary>
  95. /// 字符串转换为Vector3
  96. /// </summary>
  97. /// <param name="_data"></param>
  98. /// <param name="_interceptSymbol">字符串截取符号</param>
  99. /// <returns></returns>
  100. public static Vector3 String2Vector3(string _data,char _interceptSymbol)
  101. {
  102. if (string.IsNullOrEmpty(_data))
  103. {
  104. return Vector3.zero;
  105. }
  106. // 截取掉两端的括号
  107. string rawData = _data.Split('(')[1].Split(')')[0];
  108. string[] tmpData = rawData.Split(_interceptSymbol);
  109. if (tmpData.Length != 3)
  110. {
  111. return Vector3.zero;
  112. }
  113. return new Vector3(float.Parse(tmpData[0].Trim()),
  114. float.Parse(tmpData[1].Trim()), float.Parse(tmpData[2].Trim()));
  115. }
  116. /// <summary>
  117. /// 字符串改变
  118. /// </summary>
  119. /// <param name="_msg"></param>
  120. /// <param name="_symbol"></param>
  121. /// <returns></returns>
  122. public static string StringChange(string _msg, char _symbol)
  123. {
  124. string[] tmpMsg = _msg.Split(_symbol);
  125. return tmpMsg.Length >= 2 ? (tmpMsg[0] + "/" + tmpMsg[1]) : tmpMsg[0];
  126. }
  127. }