GameManager.cs 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using UnityEngine;
  6. using UnityTemplateProjects;
  7. using static InitTapList;
  8. public class GameManager : MonoBehaviour
  9. {
  10. public SimpleCameraController smp;
  11. [Serializable]
  12. public enum TuBiaoType
  13. {
  14. [ChineseDescription("总用电量")]
  15. 总用电量 =10001,
  16. [ChineseDescription("设备报警率")]
  17. 设备报警率=10002,
  18. [ChineseDescription("今日燃气流量")]
  19. 今日燃气流量=10003,
  20. [ChineseDescription("累计燃气用量")]
  21. 累计燃气用量=10004,
  22. [ChineseDescription("科技设备在线率")]
  23. 科技设备在线率 =20001,
  24. [ChineseDescription("科技设备利用率")]
  25. 科技设备利用率=20002,
  26. [ChineseDescription("工业设备在线率")]
  27. 工业设备在线率 =30001,
  28. [ChineseDescription("工业设备利用率")]
  29. 工业设备利用率=30002,
  30. }
  31. [Serializable]
  32. public enum GameObjectType
  33. {
  34. [ChineseDescription("园区")]
  35. 园区 =1,
  36. [ChineseDescription("科技车间")]
  37. 科技车间=2,
  38. [ChineseDescription("工业车间")]
  39. 工业车间=3,
  40. [ChineseDescription("其他")]
  41. 其他=3,
  42. }
  43. // 定义枚举
  44. [Serializable]
  45. public enum TapName
  46. {
  47. [ChineseDescription("园区总览")]
  48. 园区总览=10001,
  49. [ChineseDescription("德马科技车间")]
  50. 德马科技车间=10002,
  51. [ChineseDescription("德马工业车间")]
  52. 德马工业车间=10003,
  53. [ChineseDescription("五期智慧工厂")]
  54. 五期智慧工厂=10004,
  55. [ChineseDescription("五期综合大楼")]
  56. 五期综合大楼=10005,
  57. [ChineseDescription("车间总览")]
  58. 科技车间总览=20001,
  59. [ChineseDescription("AMADA数控冲床")]
  60. AMADA数控冲床=20002,
  61. [ChineseDescription("1#AMADA数控折弯机")]
  62. AMADA数控折弯机1=20003,
  63. [ChineseDescription("2#AMADA数控折弯机")]
  64. AMADA数控折弯机2=20004,
  65. [ChineseDescription("数控折弯机")]
  66. 数控折弯机=20005,
  67. [ChineseDescription("电液伺服数控折弯机")]
  68. 电液伺服数控折弯机=20006,
  69. [ChineseDescription("电液伺服折弯机")]
  70. 电液伺服折弯机=20007,
  71. [ChineseDescription("百超激光切割机")]
  72. 百超激光切割机=20008,
  73. [ChineseDescription("辊轧冲")]
  74. 辊轧冲=20009,
  75. [ChineseDescription("数控带锯床")]
  76. 数控带锯床=20010,
  77. [ChineseDescription("涂装(生产线)系统")]
  78. 涂装生产线系统=20011,
  79. [ChineseDescription("抛丸机")]
  80. 抛丸机=20012,
  81. [ChineseDescription("车间总览")]
  82. 工业车间总览=30001,
  83. [ChineseDescription("1#激光切管倒角一体机")]
  84. 激光切管倒角一体机1=30002,
  85. [ChineseDescription("1#S11轴切割倒角冲耳机一体机")]
  86. S11轴切割倒角冲耳机一体机1=30003,
  87. [ChineseDescription("1#联线自动装配机")]
  88. 联线自动装配机1=30004,
  89. [ChineseDescription("2#激光切管倒角一体机")]
  90. 激光切管倒角一体机2=30005,
  91. [ChineseDescription("2#S11轴切割倒角冲耳机一体机")]
  92. S11轴切割倒角冲耳机一体机2=30006,
  93. [ChineseDescription("2#联线自动装配机")]
  94. 联线自动装配机2=30007,
  95. [ChineseDescription("3#激光切管倒角一体机")]
  96. 激光切管倒角一体机3=30008,
  97. [ChineseDescription("3#S11轴切割倒角冲耳机一体机")]
  98. S11轴切割倒角冲耳机一体机3=30009,
  99. [ChineseDescription("3#联线自动装配机")]
  100. 联线自动装配机3=30010,
  101. [ChineseDescription("15轴加工一体机")]
  102. 十五轴加工一体机=30011,
  103. [ChineseDescription("科技一车间")]
  104. 科技一车间=11001,
  105. [ChineseDescription("科技二车间")]
  106. 科技二车间=11002,
  107. [ChineseDescription("科技三车间")]
  108. 科技三车间=11003,
  109. [ChineseDescription("科技五车间")]
  110. 科技五车间=11004,
  111. [ChineseDescription("工业二期")]
  112. 工业二期=11005,
  113. [ChineseDescription("工业三期(1楼)")]
  114. 工业三期1=11006,
  115. [ChineseDescription("工业三期(2楼)")]
  116. 工业三期2=11007,
  117. [ChineseDescription("工业四期")]
  118. 工业四期=11008,
  119. [ChineseDescription("工业办公楼")]
  120. 工业办公楼=11009,
  121. [ChineseDescription("创新办公楼")]
  122. 创新办公楼=11010,
  123. }
  124. public static GameManager Instance;
  125. public void Awake() {
  126. Instance =this;
  127. for(var i=0;i<wlist.Count;i++)
  128. {
  129. wlist[i].GetComponent<GameType>().init();
  130. }
  131. }
  132. public List<GameObject> wlist;
  133. public List<GameObject> keji;
  134. public List<GameObject> gongye;
  135. void showkeji()
  136. {
  137. LoadModelAB.ModelDic["工业车间"].SetActive(false);
  138. LoadModelAB.ModelDic["科技车间"].SetActive(true);
  139. }
  140. void showgongye()
  141. {
  142. LoadModelAB.ModelDic["科技车间"].SetActive(false);
  143. LoadModelAB.ModelDic["工业车间"].SetActive(true);
  144. }
  145. void showyuanqu()
  146. {
  147. LoadModelAB.ModelDic["科技车间"].SetActive(true);
  148. LoadModelAB.ModelDic["工业车间"].SetActive(true);
  149. }
  150. public void showW(GameObjectType gameObjectType,TapName tapName)
  151. {
  152. if(LoadModelAB.ModelDic.ContainsKey("科技车间")&&LoadModelAB.ModelDic.ContainsKey("工业车间"))
  153. {
  154. switch(tapName)
  155. {
  156. case TapName.园区总览:
  157. Invoke("showyuanqu",1f);
  158. break;
  159. case TapName.德马工业车间:
  160. Invoke("showkeji",1f);
  161. break;
  162. case TapName.德马科技车间:
  163. Invoke("showgongye",1f);
  164. break;
  165. }
  166. }
  167. switch(gameObjectType)
  168. {
  169. case GameObjectType.园区:
  170. for(var i=0;i<wlist.Count;i++)
  171. {
  172. if(wlist[i].GetComponent<GameType>().tapName==tapName)
  173. {
  174. wlist[i].SetActive(true);
  175. }
  176. else
  177. {
  178. wlist[i].SetActive(false);
  179. }
  180. }
  181. break;
  182. case GameObjectType.科技车间:
  183. keji[0].SetActive(tapName == TapName.科技车间总览);
  184. keji[1].SetActive(tapName != TapName.科技车间总览);
  185. break;
  186. case GameObjectType.工业车间:
  187. gongye[0].SetActive(tapName == TapName.工业车间总览);
  188. gongye[1].SetActive(tapName != TapName.工业车间总览);
  189. break;
  190. }
  191. smp.initpos();
  192. }
  193. public Camera cam;
  194. GameObject hitGo;
  195. void Update()
  196. {
  197. Ray ray = cam.ScreenPointToRay(Input.mousePosition); // 在鼠标点击位置创建一条射线
  198. RaycastHit hit; // 用于存储碰撞信息的结构体
  199. if (Physics.Raycast(ray, out hit)) // 进行射线检测
  200. {
  201. if (Input.GetMouseButtonDown(0)) // 当鼠标左键点击时
  202. {
  203. Debug.Log("点击物体: " + hit.transform.gameObject.name); // 输出碰撞的物体名称
  204. }
  205. else
  206. {
  207. if(hitGo)
  208. {
  209. if(hitGo.name!=hit.transform.gameObject.name)
  210. {
  211. hitGo = hit.transform.gameObject;
  212. Debug.Log("exit物体: " + hitGo.name); // 输出碰撞的物体名称
  213. Debug.Log("enter物体: " +hitGo.name); // 输出碰撞的物体名称
  214. }
  215. }
  216. else
  217. {
  218. hitGo = hit.transform.gameObject;
  219. Debug.Log("enter物体: " + hitGo.name); // 输出碰撞的物体名称
  220. }
  221. }
  222. }
  223. else
  224. {
  225. if(hitGo)
  226. {
  227. Debug.Log("exit物体: " + hitGo.name); // 输出碰撞的物体名称
  228. hitGo=null;
  229. }
  230. }
  231. }
  232. }