TemplateModel.cs 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. using SC.XR.Unity.Module_InputSystem;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using UnityEngine;
  6. public class TemplateModel : BaseTemPlate
  7. {
  8. private GameObject m_ModelObj = null;
  9. protected override void OnEnable()
  10. {
  11. base.OnEnable();
  12. StartCoroutine(LoadModel());
  13. }
  14. private IEnumerator LoadModel()
  15. {
  16. yield return new WaitForSeconds(0.01f);
  17. if (GameManager.Instance.IsRuning && m_ModelObj == null)
  18. {
  19. Debug.Log(Data.name);
  20. Debug.Log(Data.localSavePath);
  21. AssetBundle ab = AssetBundle.LoadFromFile(Data.localSavePath);
  22. if (ab == null)
  23. {
  24. Debug.Log("Failed to load AssetBundle!");
  25. }
  26. else
  27. {
  28. var prefab = ab.LoadAsset<GameObject>(ab.LoadAllAssets<GameObject>()[0].name);
  29. switch (prefab.name)
  30. {
  31. case "GHZ_OOBE_230721":
  32. GameObject obj = Resources.Load<GameObject>("GongYe");
  33. if(obj == null)
  34. {
  35. Debug.LogError(" GHZ_OOBE_230721 物体加载失败,请查看是否导入相关Packages ");
  36. obj = new GameObject();
  37. }
  38. m_ModelObj = GameObject.Instantiate(obj,transform);
  39. m_ModelObj.name = "GongYe";
  40. if (GameObject.Find("AudioManager") ==null)
  41. {
  42. GameObject audio = Resources.Load<GameObject>("AudioManager");
  43. if(audio ==null)
  44. {
  45. Debug.LogError(" GHZ_OOBE_230721 Packages内AudioManager组件丢失");
  46. audio = new GameObject();
  47. }
  48. GameObject Audio = GameObject.Instantiate(audio, transform);
  49. Audio.name = "AudioManager";
  50. }
  51. break;
  52. case "GHZ_DangJian":
  53. GameObject dj_GO = Resources.Load<GameObject>("PartyDangJian");
  54. if(dj_GO == null)
  55. {
  56. Debug.LogError(" GHZ_DangJian 物体加载失败,请查看是否导入相关Packages ");
  57. obj = new GameObject();
  58. }
  59. m_ModelObj = GameObject.Instantiate(dj_GO,transform);
  60. m_ModelObj.name = "GHZ_DangJian";
  61. break;
  62. case "GHZ_ShuiZuGuan":
  63. GameObject szg_GO = Resources.Load<GameObject>("ShuiZuGuan");
  64. if(szg_GO == null)
  65. {
  66. Debug.LogError(" GHZ_ShuiZuGuan 物体加载失败,请查看是否导入相关Packages ");
  67. obj = new GameObject();
  68. }
  69. m_ModelObj = GameObject.Instantiate(szg_GO,transform);
  70. m_ModelObj.name = "GHZ_ShuiZuGuan";
  71. break;
  72. default:
  73. m_ModelObj = Instantiate(prefab, transform);
  74. break;
  75. }
  76. //if (ab.LoadAllAssets<GameObject>()[0].name == "MRVideo")
  77. //m_ModelObj.AddComponent<MovieScreen>();
  78. gameObject.AddComponent<ManipulationHandler>();
  79. gameObject.AddComponent<BoundingBox>();
  80. gameObject.AddComponent<Patch_ModelController>();
  81. yield return new WaitForSeconds(0.3f);
  82. ab.Unload(false);
  83. HideCollider();
  84. }
  85. //var obj = DownloadManager.Instance.GetAbObj(Util.MD5Encrypt(Data.downloadPath));
  86. //if (obj != null)
  87. //{
  88. // m_ModelObj = Instantiate(obj, transform);
  89. // m_ModelObj.transform.localPosition = Vector3.zero;
  90. // m_ModelObj.gameObject.SetActive(true);
  91. //}
  92. }
  93. }
  94. protected override void OnAwake()
  95. {
  96. base.OnAwake();
  97. }
  98. public override void SetData(MaterialObjValue value, int updateTime)
  99. {
  100. base.SetData(value, updateTime);
  101. //if (gameObject.GetComponent<Collider>() != null)
  102. //{
  103. // Destroy(gameObject.GetComponent<Collider>());
  104. //}
  105. //下载列表中加入数据
  106. if (!GameManager.Instance.IsRuning)
  107. {
  108. DownloadManager.Instance.AddDownloadData(Data);
  109. Debug.Log(" SetData " + updateTime);
  110. }
  111. else
  112. {
  113. AssetBundle ab = AssetBundle.LoadFromFile(Data.localSavePath);
  114. if (ab == null)
  115. {
  116. Debug.Log("Failed to load AssetBundle!");
  117. return;
  118. }
  119. var prefab = ab.LoadAsset<GameObject>(ab.LoadAllAssets<GameObject>()[0].name);
  120. m_ModelObj = Instantiate(prefab, transform);
  121. ab.Unload(false);
  122. gameObject.AddComponent<ManipulationHandler>();
  123. gameObject.AddComponent<BoundingBox>();
  124. //var obj = DownloadManager.Instance.GetAbObj(Util.MD5Encrypt(Data.downloadPath));
  125. //if (obj != null)
  126. //{
  127. // m_ModelObj = Instantiate(obj, transform);
  128. // m_ModelObj.transform.localPosition = Vector3.zero;
  129. // m_ModelObj.gameObject.SetActive(true);
  130. //}
  131. }
  132. }
  133. public override void HideCollider()
  134. {
  135. base.HideCollider();
  136. }
  137. }