JinRuRenwu.cs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495
  1. using Immersal.AR;
  2. using LitJson;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using TMPro;
  6. using UnityEngine;
  7. using UnityEngine.UI;
  8. using XRTool.Util;
  9. using static XunJianDataManager;
  10. public class JinRuRenwu : WindowSingleton<JinRuRenwu>
  11. {
  12. RenWuItem rwitem;
  13. public GameObject WenJianLan;
  14. public TextMeshProUGUI info;
  15. public GameObject TaskGo;
  16. public GameObject VideoBT;
  17. public GameObject ModelBT;
  18. public GameObject ImageBT;
  19. public GameObject Image2BT;
  20. public GameObject TextBT;
  21. public GameObject AllBT;
  22. public GameObject Video;
  23. public GameObject Model;
  24. public GameObject Image;
  25. public GameObject Image2;
  26. public GameObject Text;
  27. public GameObject paizhaoGo;
  28. public TextMeshProUGUI indexText;
  29. public List<GameObject> updateList;
  30. public GameObject kong;
  31. public GameObject saotuTip;
  32. public GameObject StartGo;
  33. public GameObject paizhaoanniu;
  34. public int PaiZhaoIndex=0;
  35. public override void OnEnable()
  36. {
  37. base.OnEnable();
  38. }
  39. public void isPaiZhao(bool isPaizhao)
  40. {
  41. if(isPaizhao)
  42. {
  43. changIndex(0);
  44. }
  45. else
  46. {
  47. changIndex(1);
  48. }
  49. }
  50. public void changIndex(int i)
  51. {
  52. PaiZhaoIndex = i;
  53. if(PaiZhaoIndex==0)
  54. {
  55. if (ChangeCameraSaoMiao.Instance)
  56. ChangeCameraSaoMiao.Instance.showpaizhao();
  57. }else
  58. {
  59. if (ChangeCameraSaoMiao.Instance)
  60. ChangeCameraSaoMiao.Instance.showluxiang();
  61. }
  62. }
  63. public void initStart()
  64. {
  65. saotuTip.SetActive(true);
  66. StartGo.SetActive(false);
  67. switch (XunJianDataManager.Instance.chooseXunJian.renwuModelType)
  68. {
  69. case RenWuModelType.SaoTu:
  70. saotuTip.GetComponent<SaoTuManager>().showSaoTu();
  71. break;
  72. case RenWuModelType.DianYun:
  73. ShowInfoTipManager.Instance.showTip("正在加载点云地图");
  74. if (DianYunManager.Instance)
  75. {
  76. DianYunManager.Instance.startSaoMiao();
  77. }
  78. XRRGBCamera.Instance.playCamera(1280, 720);
  79. XunJianDataManager.Instance.chooseXunJian.nowIndex = -1;
  80. DownLoadXRManager.DownLoadForBytes(DownLoadXRManager.getTestData(XunJianDataManager.Instance.chooseXunJian.url), (byte[] bytes) => {
  81. saotuTip.GetComponent<SaoTuManager>().showDianYun(bytes);
  82. }, (float f) => {
  83. });
  84. break;
  85. case RenWuModelType.DingWeiBan:
  86. saotuTip.GetComponent<SaoTuManager>().showSaoTu();
  87. break;
  88. }
  89. }
  90. public void GotoStart()
  91. {
  92. XunJianDataManager.Instance.chooseXunJian.nowIndex = -1;
  93. switch (XunJianDataManager.Instance.chooseXunJian.renwuModelType)
  94. {
  95. case RenWuModelType.SaoTu:
  96. ChangeCameraSaoMiao.Instance.showsaomiao(XunJianDataManager.Instance.chooseXunJian.itemList[0]);
  97. break;
  98. case RenWuModelType.DingWeiBan:
  99. ChangeCameraSaoMiao.Instance.showsaomiao(XunJianDataManager.Instance.chooseXunJian.itemList[0]);
  100. break;
  101. }
  102. // TimerMgr.Instance.CreateTimer(()=> { showInit(); },5f);
  103. }
  104. public void show()
  105. {
  106. if (DianYunManager.Instance)
  107. {
  108. DianYunManager.Instance.stopSaoMiao();
  109. }
  110. Debug.Log("showshowshowshowshowshow");
  111. //updateListRef();
  112. rwitem = XunJianDataManager.Instance.chooseXunJian.itemList[XunJianDataManager.Instance.chooseXunJian.nowIndex+1];
  113. if (XunJianDataManager.Instance.chooseXunJian.renwuModelType == RenWuModelType.DianYun)
  114. {
  115. LineManager.Instance.setRoad(rwitem.roadList);
  116. }
  117. else
  118. {
  119. gotoNextItem();
  120. }
  121. // if (XunJianDataManager.Instance.chooseXunJian != null)
  122. // UpdateData();
  123. }
  124. public override void UpdateData()
  125. {
  126. base.UpdateData();
  127. ChangeCameraSaoMiao.Instance.close();
  128. VideoBT.SetActive(false);
  129. ModelBT.SetActive(false);
  130. ImageBT.SetActive(false);
  131. Image2BT.SetActive(false);
  132. TextBT.SetActive(false);
  133. rwitem = XunJianDataManager.Instance.chooseXunJian.itemList[XunJianDataManager.Instance.chooseXunJian.nowIndex];
  134. indexText.text = (rwitem.index+1).ToString();
  135. info.text = rwitem.info;
  136. if (rwitem.typeList.Count > 0)
  137. {
  138. int img = 0;
  139. for (int i = 0; i < rwitem.typeList.Count; i++)
  140. {
  141. switch (rwitem.typeList[i].type)
  142. {
  143. case RenWuType.Image:
  144. if(img==0)
  145. {
  146. ImageBT.SetActive(true);
  147. Image.GetComponent<RenWuTypeWindow>().updateData(rwitem.typeList[i]);
  148. }
  149. else
  150. {
  151. Image2BT.SetActive(false);
  152. Image2.GetComponent<RenWuTypeWindow>().updateData(rwitem.typeList[i]);
  153. }
  154. img++;
  155. break;
  156. case RenWuType.Model:
  157. ModelBT.SetActive(true);
  158. Model.GetComponent<RenWuTypeWindow>().updateData(rwitem.typeList[i]);
  159. break;
  160. case RenWuType.Text:
  161. TextBT.SetActive(true);
  162. Text.GetComponent<RenWuTypeWindow>().updateData(rwitem.typeList[i]);
  163. break;
  164. case RenWuType.Video:
  165. VideoBT.SetActive(true);
  166. Video.GetComponent<RenWuTypeWindow>().updateData(rwitem.typeList[i]);
  167. break;
  168. }
  169. }
  170. if(rwitem.typeList.Count < 2)
  171. {
  172. AllBT.SetActive(false);
  173. }else
  174. {
  175. AllBT.SetActive(true);
  176. }
  177. WenJianLan.SetActive(true);
  178. }
  179. else
  180. {
  181. WenJianLan.SetActive(false);
  182. }
  183. }
  184. private void OnDisable()
  185. {
  186. //RoadManager.Instance.gameObject.SetActive(false);
  187. }
  188. public List<GameObject> getResGo()
  189. {
  190. List<GameObject> list = new List<GameObject>();
  191. int img = 0;
  192. for (int i = 0; i < rwitem.typeList.Count; i++)
  193. {
  194. switch (rwitem.typeList[i].type)
  195. {
  196. case RenWuType.Image:
  197. if (img == 0)
  198. {
  199. list.Add(Image);
  200. }
  201. else
  202. {
  203. list.Add(Image2);
  204. }
  205. img++;
  206. break;
  207. case RenWuType.Model:
  208. list.Add(Model);
  209. break;
  210. case RenWuType.Text:
  211. list.Add(Text);
  212. break;
  213. case RenWuType.Video:
  214. list.Add(Video);
  215. break;
  216. }
  217. }
  218. return list;
  219. }
  220. public void gotoRTC()
  221. {
  222. WindowsManager.Instance.show(WindowConfig.windowType.Tip2, false, "敬请期待!");
  223. /*
  224. List<string> backTip = new List<string>();
  225. backTip.Add("test1");
  226. backTip.Add("test2");
  227. backTip.Add("test3");
  228. WindowsManager.Instance.show(WindowConfig.windowType.Tip, false, WindowsManager.Instance.getTip1Data("提示", "敬请期待!", true, true, "icon", Color.gray, backTip).ToJson());*/
  229. }
  230. public void showAll()
  231. {
  232. List<GameObject> list = getResGo();
  233. bool isOpen=false;
  234. for (int i = 0; i < list.Count; i++)
  235. {
  236. if(!list[i].activeSelf)
  237. {
  238. isOpen = true;
  239. }
  240. }
  241. for (int i = 0; i < list.Count; i++)
  242. {
  243. list[i].SetActive(isOpen);
  244. }
  245. checkJd();
  246. }
  247. void checkJd()
  248. {
  249. List<GameObject> list = getResGo();
  250. int ct=0;
  251. for (int i = 0; i < list.Count; i++)
  252. {
  253. if (list[i].activeSelf)
  254. {
  255. ct++;
  256. }
  257. }
  258. if (JinRuRenwu.Instance.paizhaoGo.activeSelf)
  259. {
  260. ct += 1;
  261. }
  262. if (ct >3)
  263. WindowGenSui.Instance.jd = 60;
  264. else if (ct > 0)
  265. WindowGenSui.Instance.jd = 45;
  266. else
  267. {
  268. WindowGenSui.Instance.jd = 30;
  269. }
  270. }
  271. public void closeAll()
  272. {
  273. List<GameObject> list = getResGo();
  274. for (int i = 0; i < list.Count; i++)
  275. {
  276. list[i].SetActive(false);
  277. }
  278. }
  279. public void showText()
  280. {
  281. Text.SetActive(!Text.activeSelf);
  282. if (!JinRuRenwu.Instance.paizhaoGo.activeSelf)
  283. {
  284. Text.transform.SetAsFirstSibling();
  285. }
  286. else
  287. {
  288. Video.transform.SetSiblingIndex(1);
  289. }
  290. checkJd();
  291. }
  292. public void showImage()
  293. {
  294. Image.SetActive(!Image.activeSelf);
  295. if (!JinRuRenwu.Instance.paizhaoGo.activeSelf)
  296. {
  297. Image.transform.SetAsFirstSibling();
  298. }
  299. else
  300. {
  301. Video.transform.SetSiblingIndex(1);
  302. }
  303. checkJd();
  304. }
  305. public void showImage2()
  306. {
  307. Image2.SetActive(!Image2.activeSelf);
  308. if (!JinRuRenwu.Instance.paizhaoGo.activeSelf)
  309. {
  310. Image2.transform.SetAsFirstSibling();
  311. }
  312. else
  313. {
  314. Video.transform.SetSiblingIndex(1);
  315. }
  316. checkJd();
  317. }
  318. public void showModel()
  319. {
  320. Model.SetActive(!Model.activeSelf);
  321. if (!JinRuRenwu.Instance.paizhaoGo.activeSelf)
  322. {
  323. Model.transform.SetAsFirstSibling();
  324. }
  325. else
  326. {
  327. Video.transform.SetSiblingIndex(1);
  328. }
  329. checkJd();
  330. }
  331. public void showVideo()
  332. {
  333. Video.SetActive(!Video.activeSelf);
  334. if (!JinRuRenwu.Instance.paizhaoGo.activeSelf)
  335. {
  336. Video.transform.SetAsFirstSibling();
  337. }
  338. else
  339. {
  340. Video.transform.SetSiblingIndex(1);
  341. }
  342. checkJd();
  343. }
  344. public Toggle paizhaoToggle;
  345. public void GotoPaiZhao()
  346. {
  347. if(!JinRuRenwu.Instance.paizhaoGo.activeSelf)
  348. {
  349. PaiZhaoIndex = 0;
  350. ChangeCameraSaoMiao.Instance.showpaizhao();
  351. }else
  352. {
  353. paizhaoToggle.isOn = true;
  354. ChangeCameraSaoMiao.Instance.close();
  355. }
  356. checkJd();
  357. // PaiZhaoGo.SetActive(!PaiZhaoGo.activeSelf);
  358. }
  359. public void paizhaoAndLuxiang()
  360. {
  361. if (PaiZhaoIndex == 0)
  362. {
  363. ChangeCameraSaoMiao.Instance.paizhaoclick();
  364. }
  365. else
  366. {
  367. ChangeCameraSaoMiao.Instance.luxiangClick();
  368. }
  369. }
  370. public void GotoTask()
  371. {
  372. TaskGo.SetActive(!TaskGo.activeSelf);
  373. }
  374. public void updateListRef()
  375. {
  376. for (int i = updateList.Count-1; i >=0; i--)
  377. {
  378. if ((updateList[i].GetComponent<ContentSizeFitter>()))
  379. {
  380. updateList[i].GetComponent<ContentSizeFitter>().SetLayoutVertical();
  381. updateList[i].GetComponent<ContentSizeFitter>().SetLayoutHorizontal();
  382. }
  383. if (updateList[i].GetComponent<HorizontalLayoutGroup>())
  384. {
  385. updateList[i].GetComponent<HorizontalLayoutGroup>().SetLayoutHorizontal();
  386. updateList[i].GetComponent<HorizontalLayoutGroup>().CalculateLayoutInputHorizontal();
  387. }
  388. if ((updateList[i].GetComponent<VerticalLayoutGroup>()))
  389. {
  390. updateList[i].GetComponent<VerticalLayoutGroup>().SetLayoutVertical();
  391. updateList[i].GetComponent<VerticalLayoutGroup>().CalculateLayoutInputVertical();
  392. }
  393. }
  394. }
  395. public void successItem()
  396. {
  397. rwitem.state = RenWuState.Success;
  398. }
  399. public void failItem()
  400. {
  401. rwitem.state = RenWuState.Fail;
  402. }
  403. public void gotoNextItem()
  404. {
  405. saotuTip.SetActive(false);
  406. StartGo.SetActive(true);
  407. ARSpace.isFind = false;
  408. TimerMgr.Instance.CreateTimer(() => {
  409. kong.SetActive(!kong.activeSelf);
  410. }, 0.01f, 6);
  411. XunJianDataManager.Instance.gotoNext();
  412. }
  413. public void GotoLieBiao()
  414. {
  415. if (ChangeCameraSaoMiao.Instance)
  416. {
  417. ChangeCameraSaoMiao.Instance.close();
  418. ChangeCameraSaoMiao.Instance.checkLuXiang();
  419. }
  420. LineManager.Instance.stop();
  421. if(DianYunManager.Instance)
  422. {
  423. DianYunManager.Instance.stopSaoMiao();
  424. }
  425. WindowGenSui.Instance.jd = 30;
  426. WindowsManager.Instance.show(WindowConfig.windowType.XunJianLB);
  427. }
  428. }