GameManager.cs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using UnityEngine;
  6. using UnityEngine.UI;
  7. using UnityTemplateProjects;
  8. using static DeMaConfig;
  9. using static DeMaConfig.windowItemGameObject;
  10. using static InitTapList;
  11. public class GameManager : MonoBehaviour
  12. {
  13. public Dictionary<string,List<int>> qx=new Dictionary<string,List<int>>();
  14. public Dictionary<string,string> zh=new Dictionary<string,string>();
  15. public static bool isModel=false;
  16. public GameObject initwindow;
  17. public GameObject texterror;
  18. void showWindow()
  19. {
  20. for(int i=0;i<wlist.Count;i++)
  21. {
  22. wlist[i].SetActive(true);
  23. }
  24. if(qx.ContainsKey(accinput.text))
  25. {
  26. for(int i=0;i<qx[accinput.text].Count;i++)
  27. {
  28. wlist[qx[accinput.text][i]].SetActive(false);
  29. }
  30. }
  31. if(!qx.ContainsKey(accinput.text)||!qx[accinput.text].Contains(0))
  32. {
  33. for(int i=0;i<wlist.Count;i++)
  34. {
  35. wlist[i].SetActive(false);
  36. }
  37. wlist[0].SetActive(true);
  38. }
  39. }
  40. public void showWindo()
  41. {
  42. foreach(var k in zh.Keys)
  43. {
  44. if(passinput.text==zh[k]&&k ==accinput.text)
  45. {
  46. DeMaDataManager.token = "c9a83db6a916ba530da2df11624c0ae6";
  47. PlayerPrefs.SetString("token",accinput.text);
  48. initwindow.SetActive(false);
  49. showWindow();
  50. return;
  51. }
  52. }
  53. texterror.SetActive(true);
  54. //tokeninput.text = "";
  55. accinput.text = "";
  56. passinput.text ="";
  57. /*
  58. if(tokeninput.text =="c9a83db6a916ba530da2df11624c0ae6")
  59. {
  60. DeMaDataManager.token = tokeninput.text;
  61. PlayerPrefs.SetString("token",accinput.text);
  62. initwindow.SetActive(false);
  63. }
  64. else
  65. {
  66. texterror.SetActive(true);
  67. //tokeninput.text = "";
  68. accinput.text = "";
  69. passinput.text ="";
  70. }*/
  71. }
  72. //public InputField tokeninput;
  73. public InputField accinput;
  74. public InputField passinput;
  75. public DeMaConfig config;
  76. public SimpleCameraController smp;
  77. [Serializable]
  78. public enum TuBiaoType
  79. {
  80. [ChineseDescription("总用电量")]
  81. 总用电量 =10001,
  82. [ChineseDescription("设备报警率")]
  83. 设备报警率=10002,
  84. [ChineseDescription("今日燃气流量")]
  85. 今日燃气流量=10003,
  86. [ChineseDescription("累计燃气用量")]
  87. 累计燃气用量=10004,
  88. [ChineseDescription("科技设备在线率")]
  89. 科技设备在线率 =20001,
  90. [ChineseDescription("科技设备利用率")]
  91. 科技设备利用率=20002,
  92. [ChineseDescription("工业设备在线率")]
  93. 工业设备在线率 =30001,
  94. [ChineseDescription("工业设备利用率")]
  95. 工业设备利用率=30002,
  96. [ChineseDescription("园区利用率")]
  97. 园区利用率=40001,
  98. }
  99. [Serializable]
  100. public enum GameObjectType
  101. {
  102. [ChineseDescription("园区")]
  103. 园区 =1,
  104. [ChineseDescription("科技车间")]
  105. 科技车间=2,
  106. [ChineseDescription("工业车间")]
  107. 工业车间=3,
  108. [ChineseDescription("电力")]
  109. 电力=4,
  110. [ChineseDescription("其他")]
  111. 其他=5,
  112. }
  113. // 定义枚举
  114. [Serializable]
  115. public enum TapName
  116. {
  117. [ChineseDescription("园区总览")]
  118. 园区总览=10001,
  119. [ChineseDescription("德马科技车间")]
  120. 德马科技车间=10002,
  121. [ChineseDescription("德马工业车间")]
  122. 德马工业车间=10003,
  123. [ChineseDescription("五期智慧工厂")]
  124. 五期智慧工厂=10004,
  125. [ChineseDescription("五期综合大楼")]
  126. 五期综合大楼=10005,
  127. [ChineseDescription("车间总览")]
  128. 科技车间总览=20001,
  129. [ChineseDescription("AMADA数控冲床")]
  130. AMADA数控冲床=20002,
  131. [ChineseDescription("1#AMADA数控折弯机")]
  132. AMADA数控折弯机1=20003,
  133. [ChineseDescription("2#AMADA数控折弯机")]
  134. AMADA数控折弯机2=20004,
  135. [ChineseDescription("数控折弯机")]
  136. 数控折弯机=20005,
  137. [ChineseDescription("电液伺服数控折弯机")]
  138. 电液伺服数控折弯机=20006,
  139. [ChineseDescription("电液伺服折弯机")]
  140. 电液伺服折弯机=20007,
  141. [ChineseDescription("百超激光切割机")]
  142. 百超激光切割机=20008,
  143. [ChineseDescription("辊轧冲")]
  144. 辊轧冲=20009,
  145. [ChineseDescription("数控带锯床")]
  146. 数控带锯床=20010,
  147. [ChineseDescription("涂装(生产线)系统")]
  148. 涂装生产线系统=20011,
  149. [ChineseDescription("抛丸机")]
  150. 抛丸机=20012,
  151. [ChineseDescription("车间总览")]
  152. 工业车间总览=30001,
  153. [ChineseDescription("1#激光切管倒角一体机")]
  154. 激光切管倒角一体机1=30002,
  155. [ChineseDescription("1#S11轴切割倒角冲耳机一体机")]
  156. S11轴切割倒角冲耳机一体机1=30003,
  157. [ChineseDescription("1#联线自动装配机")]
  158. 联线自动装配机1=30004,
  159. [ChineseDescription("2#激光切管倒角一体机")]
  160. 激光切管倒角一体机2=30005,
  161. [ChineseDescription("2#S11轴切割倒角冲耳机一体机")]
  162. S11轴切割倒角冲耳机一体机2=30006,
  163. [ChineseDescription("2#联线自动装配机")]
  164. 联线自动装配机2=30007,
  165. [ChineseDescription("3#激光切管倒角一体机")]
  166. 激光切管倒角一体机3=30008,
  167. [ChineseDescription("3#S11轴切割倒角冲耳机一体机")]
  168. S11轴切割倒角冲耳机一体机3=30009,
  169. [ChineseDescription("3#联线自动装配机")]
  170. 联线自动装配机3=30010,
  171. [ChineseDescription("15轴加工一体机")]
  172. 十五轴加工一体机=30011,
  173. [ChineseDescription("科技一车间")]
  174. 科技一车间=11001,
  175. [ChineseDescription("科技二车间")]
  176. 科技二车间=11002,
  177. [ChineseDescription("科技三车间")]
  178. 科技三车间=11003,
  179. [ChineseDescription("科技五车间")]
  180. 科技五车间=11004,
  181. [ChineseDescription("工业一车间")]
  182. 工业二期=11005,
  183. [ChineseDescription("工业二车间(一楼)")]
  184. 工业三期1=11006,
  185. [ChineseDescription("工业二车间(二楼)")]
  186. 工业三期2=11007,
  187. [ChineseDescription("工业三车间")]
  188. 工业四期=11008,
  189. [ChineseDescription("工业办公楼")]
  190. 工业办公楼=11009,
  191. [ChineseDescription("创新办公楼")]
  192. 创新办公楼=11010,
  193. }
  194. public static GameManager Instance;
  195. public void Awake() {
  196. Instance =this;
  197. if(PlayerPrefs.GetString("token")!="")
  198. {
  199. // tokeninput.text = PlayerPrefs.GetString("token");
  200. // showWindo();
  201. }
  202. for(var i=0;i<wlist.Count;i++)
  203. {
  204. wlist[i].GetComponent<GameType>().init();
  205. }
  206. }
  207. public List<GameObject> wlist;
  208. public List<GameObject> dlist;
  209. public List<GameObject> keji;
  210. public List<GameObject> gongye;
  211. void showkeji()
  212. {
  213. LoadModelAB.ModelDic["工业车间"].SetActive(false);
  214. LoadModelAB.ModelDic["科技车间"].SetActive(true);
  215. }
  216. void showgongye()
  217. {
  218. LoadModelAB.ModelDic["科技车间"].SetActive(false);
  219. LoadModelAB.ModelDic["工业车间"].SetActive(true);
  220. }
  221. void showyuanqu()
  222. {
  223. LoadModelAB.ModelDic["科技车间"].SetActive(true);
  224. LoadModelAB.ModelDic["工业车间"].SetActive(true);
  225. }
  226. public void showW(GameObjectType gameObjectType,TapName tapName)
  227. {
  228. if(LoadModelAB.ModelDic.ContainsKey("科技车间")&&LoadModelAB.ModelDic.ContainsKey("工业车间"))
  229. {
  230. switch(tapName)
  231. {
  232. case TapName.园区总览:
  233. Invoke("showyuanqu",1f);
  234. break;
  235. case TapName.德马工业车间:
  236. Invoke("showkeji",1f);
  237. break;
  238. case TapName.德马科技车间:
  239. Invoke("showgongye",1f);
  240. break;
  241. }
  242. }
  243. switch(gameObjectType)
  244. {
  245. case GameObjectType.园区:
  246. for(var i=0;i<wlist.Count;i++)
  247. {
  248. if(wlist[i].GetComponent<GameType>().tapName==tapName)
  249. {
  250. wlist[i].SetActive(true);
  251. }
  252. else
  253. {
  254. wlist[i].SetActive(false);
  255. }
  256. }
  257. for(var i=0;i<dlist.Count;i++)
  258. {
  259. dlist[i].SetActive(TapName.园区总览==tapName);
  260. }
  261. SimpleCameraController.smallclickct = 3;
  262. break;
  263. case GameObjectType.科技车间:
  264. keji[0].SetActive(tapName == TapName.科技车间总览);
  265. keji[1].SetActive(tapName != TapName.科技车间总览);
  266. for(var i=0;i<dlist.Count;i++)
  267. {
  268. dlist[i].SetActive(false);
  269. }
  270. if(tapName != TapName.科技车间总览)
  271. {
  272. SimpleCameraController.smallclickct = 2;
  273. }else
  274. {
  275. SimpleCameraController.smallclickct = 3;
  276. }
  277. break;
  278. case GameObjectType.工业车间:
  279. gongye[0].SetActive(tapName == TapName.工业车间总览);
  280. gongye[1].SetActive(tapName != TapName.工业车间总览);
  281. for(var i=0;i<dlist.Count;i++)
  282. {
  283. dlist[i].SetActive(false);
  284. }
  285. if(tapName != TapName.工业车间总览)
  286. {
  287. SimpleCameraController.smallclickct = 2;
  288. }else
  289. {
  290. SimpleCameraController.smallclickct = 3;
  291. }
  292. break;
  293. case GameObjectType.电力:
  294. for(var i=0;i<dlist.Count;i++)
  295. {
  296. if(dlist[i].GetComponent<GameType>().tapName==tapName)
  297. {
  298. dlist[i].SetActive(true);
  299. }
  300. else
  301. {
  302. dlist[i].SetActive(false);
  303. }
  304. }
  305. SimpleCameraController.smallclickct = 3;
  306. break;
  307. }
  308. smp.initpos();
  309. }
  310. public Camera cam;
  311. GameObject hitGo;
  312. void Update()
  313. {
  314. Ray ray = cam.ScreenPointToRay(Input.mousePosition); // 在鼠标点击位置创建一条射线
  315. RaycastHit hit; // 用于存储碰撞信息的结构体
  316. if (Physics.Raycast(ray, out hit)) // 进行射线检测
  317. {
  318. if (Input.GetMouseButtonDown(0)) // 当鼠标左键点击时
  319. {
  320. Debug.Log("点击物体: " + hit.transform.gameObject.name); // 输出碰撞的物体名称
  321. }
  322. else
  323. {
  324. if(hitGo)
  325. {
  326. if(hitGo.name!=hit.transform.gameObject.name)
  327. {
  328. hitGo = hit.transform.gameObject;
  329. Debug.Log("exit物体: " + hitGo.name); // 输出碰撞的物体名称
  330. Debug.Log("enter物体: " +hitGo.name); // 输出碰撞的物体名称
  331. }
  332. }
  333. else
  334. {
  335. hitGo = hit.transform.gameObject;
  336. Debug.Log("enter物体: " + hitGo.name); // 输出碰撞的物体名称
  337. }
  338. }
  339. }
  340. else
  341. {
  342. if(hitGo)
  343. {
  344. Debug.Log("exit物体: " + hitGo.name); // 输出碰撞的物体名称
  345. hitGo=null;
  346. }
  347. }
  348. }
  349. public string getID(TapName tapName)
  350. {
  351. for (int i = 0;i<GameManager.Instance.config.TaskList.Count;i++)
  352. {
  353. if(tapName == GameManager.Instance.config.TaskList[i].type)
  354. {
  355. return GameManager.Instance.config.TaskList[i].ID;
  356. }
  357. }
  358. return "";
  359. }
  360. public string getName(string ID)
  361. {
  362. for (int i = 0;i<GameManager.Instance.config.TaskList.Count;i++)
  363. {
  364. if(ID == GameManager.Instance.config.TaskList[i].ID)
  365. {
  366. return GameManager.Instance.config.TaskList[i].type.ToString();
  367. }
  368. }
  369. return "";
  370. }
  371. public TaskItem getTask(TapName tapName)
  372. {
  373. for (int i = 0;i<GameManager.Instance.config.TaskList.Count;i++)
  374. {
  375. if(tapName == GameManager.Instance.config.TaskList[i].type)
  376. {
  377. return GameManager.Instance.config.TaskList[i];
  378. }
  379. }
  380. return null;
  381. }
  382. }