TextureMgr.cs 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class GameInfo
  5. {
  6. public string name;
  7. public string path;
  8. public Texture2D texture2D;
  9. //自动语言转换id
  10. public string textId;
  11. //添加哪个语言脚本
  12. public int languageType = 0;
  13. public int gameType = -1;
  14. }
  15. public class TextureMgr
  16. {
  17. static TextureMgr _ins = null;
  18. public static TextureMgr ins
  19. {
  20. get
  21. {
  22. if (_ins == null)
  23. {
  24. _ins = new TextureMgr();
  25. }
  26. return _ins;
  27. }
  28. }
  29. Hashtable deviceConfigs = new Hashtable();
  30. List<GameInfo> gameInfos = new List<GameInfo>();
  31. //TextureMgr()
  32. //{
  33. // //这里i的长度要包含
  34. // for (int i = 1; i < 17; i++)
  35. // {
  36. // string _path = "Textures/GameIcon/";
  37. // GameInfo gameInfo = new GameInfo();
  38. // gameInfo.gameType = i;
  39. // switch (i)
  40. // {
  41. // case 1: //静止靶 (单人)"
  42. // gameInfo.name = "静止靶 (单人)";
  43. // gameInfo.languageType = 1;
  44. // gameInfo.textId = "OlynpicArchery";
  45. // _path += "OlynpicArchery";
  46. // break;
  47. // case 2:
  48. // gameInfo.name = "静止靶 (本地PK)";
  49. // gameInfo.languageType = 1;
  50. // gameInfo.textId = "OlynpicArchery";
  51. // _path += "OlynpicArchery";
  52. // break;
  53. // case 3:
  54. // gameInfo.name = "兔子关卡 (单人)";
  55. // _path += "rabbit_level";
  56. // gameInfo.languageType = 1;
  57. // gameInfo.textId = "HareHunt";
  58. // break;
  59. // case 4:
  60. // gameInfo.name = "野鸡关卡 (单人)";
  61. // _path += "hunt_level";
  62. // gameInfo.languageType = 1;
  63. // gameInfo.textId = "PheasuntHunt";
  64. // break;
  65. // case 5:
  66. // gameInfo.name = "野狼关卡 (单人)";
  67. // _path += "wolf_level";
  68. // gameInfo.languageType = 1;
  69. // gameInfo.textId = "WolfHunt";
  70. // break;
  71. // case 6:
  72. // gameInfo.name = "兔子关卡 (本地PK)";
  73. // _path += "rabbit_level";
  74. // gameInfo.languageType = 1;
  75. // gameInfo.textId = "HareHunt";
  76. // break;
  77. // case 7:
  78. // gameInfo.name = "野鸡关卡 (本地PK)";
  79. // _path += "hunt_level";
  80. // gameInfo.languageType = 1;
  81. // gameInfo.textId = "PheasuntHunt";
  82. // break;
  83. // case 8:
  84. // gameInfo.name = "野狼关卡 (本地PK)";
  85. // _path += "wolf_level";
  86. // gameInfo.languageType = 1;
  87. // gameInfo.textId = "WolfHunt";
  88. // break;
  89. // case 9:
  90. // gameInfo.name = "静止靶 (联机PK)";
  91. // _path += "OlynpicArchery";
  92. // gameInfo.languageType = 1;
  93. // gameInfo.textId = "OlynpicArchery";
  94. // break;
  95. // case 10:
  96. // gameInfo.name = "兔子关卡 (联机PK)";
  97. // _path += "rabbit_level";
  98. // gameInfo.languageType = 1;
  99. // gameInfo.textId = "HareHunt";
  100. // break;
  101. // case 11:
  102. // gameInfo.name = "野鸡关卡 (联机PK)";
  103. // _path += "hunt_level";
  104. // gameInfo.languageType = 1;
  105. // gameInfo.textId = "PheasuntHunt";
  106. // break;
  107. // case 12:
  108. // gameInfo.name = "野狼关卡 (联机PK)";
  109. // _path += "wolf_level";
  110. // gameInfo.languageType = 1;
  111. // gameInfo.textId = "WolfHunt";
  112. // break;
  113. // case 13:
  114. // gameInfo.name = "野鸭关卡 (单人)";
  115. // _path += "duck_level";
  116. // gameInfo.languageType = 1;
  117. // gameInfo.textId = "LevelDuckHunter";
  118. // break;
  119. // case 14:
  120. // gameInfo.name = "荒野射击 (单人)";
  121. // _path += "wild_level";
  122. // gameInfo.languageType = 1;
  123. // gameInfo.textId = "LevelWildAttack";
  124. // break;
  125. // case 15:
  126. // gameInfo.name = "水果达人 (单人)";
  127. // _path += "FruitExpert";
  128. // gameInfo.languageType = 1;
  129. // gameInfo.textId = "FruitExpert";
  130. // break;
  131. // case 16:
  132. // gameInfo.name = "移动目标 (单人)";
  133. // _path += "movingTarget_level";
  134. // gameInfo.languageType = 2;
  135. // gameInfo.textId = "MovingTarget";
  136. // break;
  137. // }
  138. // gameInfo.path = _path;
  139. // gameInfo.texture2D = Resources.Load(_path) as Texture2D; //Resources.LoadAsync(_path, typeof(Texture2D)).asset as Texture2D;
  140. // gameInfos.Add(gameInfo);
  141. // }
  142. //}
  143. //优化数据代码
  144. TextureMgr()
  145. {
  146. // 定义游戏信息的字典
  147. var gameData = new Dictionary<int, (string name, string textId, string textIdGun, string texturePath, int languageType)>
  148. {
  149. { 1, ("静止靶 (单人)", "OlynpicArchery", "OlynpicArcheryGun", "OlynpicArchery", 1) },
  150. { 2, ("静止靶 (本地PK)", "OlynpicArchery", "OlynpicArcheryGun", "OlynpicArchery", 1) },
  151. { 3, ("兔子关卡 (单人)", "HareHunt", "HareHunt","rabbit_level", 1) },
  152. { 4, ("野鸡关卡 (单人)", "PheasuntHunt", "PheasuntHunt", "hunt_level", 1) },
  153. { 5, ("野狼关卡 (单人)", "WolfHunt", "WolfHunt", "wolf_level", 1) },
  154. { 6, ("兔子关卡 (本地PK)", "HareHunt", "HareHunt", "rabbit_level", 1) },
  155. { 7, ("野鸡关卡 (本地PK)", "PheasuntHunt", "PheasuntHunt","hunt_level", 1) },
  156. { 8, ("野狼关卡 (本地PK)", "WolfHunt", "WolfHunt","wolf_level", 1) },
  157. { 9, ("静止靶 (联机PK)", "OlynpicArchery","OlynpicArcheryGun", "OlynpicArchery", 1) },
  158. {10, ("兔子关卡 (联机PK)", "HareHunt","HareHunt", "rabbit_level", 1) },
  159. {11, ("野鸡关卡 (联机PK)", "PheasuntHunt","PheasuntHunt", "hunt_level", 1) },
  160. {12, ("野狼关卡 (联机PK)", "WolfHunt", "WolfHunt","wolf_level", 1) },
  161. {13, ("野鸭关卡 (单人)", "LevelDuckHunter","LevelDuckHunter", "duck_level", 1) },
  162. {14, ("荒野射击 (单人)", "LevelWildAttack","LevelWildAttack", "wild_level", 1) },
  163. {15, ("水果达人 (单人)", "FruitExpert","FruitExpert", "FruitExpert", 1) },
  164. {16, ("移动目标 (单人)", "MovingTarget","MovingTarget", "movingTarget_level", 2) },
  165. };
  166. foreach (var gameEntry in gameData)
  167. {
  168. string _path = "Textures/GameIcon/" + gameEntry.Value.texturePath;
  169. GameInfo gameInfo = new GameInfo
  170. {
  171. gameType = gameEntry.Key,
  172. name = gameEntry.Value.name,
  173. languageType = gameEntry.Value.languageType,
  174. //更具当前设备区分
  175. textId = GlobalData.MyDeviceMode == DeviceMode.Gun? gameEntry.Value.textIdGun : gameEntry.Value.textId,
  176. path = _path,
  177. texture2D = Resources.Load(_path) as Texture2D // Load texture
  178. };
  179. gameInfos.Add(gameInfo);
  180. }
  181. }
  182. public GameInfo GetGameInfos(int index) {
  183. int _index = index - 1;
  184. if (_index < gameInfos.Count && _index >= 0)
  185. {
  186. return gameInfos[index - 1];
  187. }
  188. else {
  189. return null;
  190. }
  191. }
  192. }