123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- using SC.XR.Unity.Module_InputSystem;
- using System.Collections;
- using System.Collections.Generic;
- using System.IO;
- using UnityEngine;
- public class TemplateModel : BaseTemPlate
- {
- private GameObject m_ModelObj = null;
- protected override void OnEnable()
- {
- base.OnEnable();
- StartCoroutine(LoadModel());
- }
- private IEnumerator LoadModel()
- {
- yield return new WaitForSeconds(0.01f);
- if (GameManager.Instance.IsRuning && m_ModelObj == null)
- {
- Debug.Log(Data.name);
- Debug.Log(Data.localSavePath);
- AssetBundle ab = AssetBundle.LoadFromFile(Data.localSavePath);
- if (ab == null)
- {
- Debug.Log("Failed to load AssetBundle!");
- }
- else
- {
- var prefab = ab.LoadAsset<GameObject>(ab.LoadAllAssets<GameObject>()[0].name);
- switch (prefab.name)
- {
- case "GHZ_OOBE_230721":
- GameObject obj = Resources.Load<GameObject>("GongYe");
- if(obj == null)
- {
- Debug.LogError(" GHZ_OOBE_230721 物体加载失败,请查看是否导入相关Packages ");
- obj = new GameObject();
-
- }
- m_ModelObj = GameObject.Instantiate(obj,transform);
- m_ModelObj.name = "GongYe";
- if (GameObject.Find("AudioManager") ==null)
- {
- GameObject audio = Resources.Load<GameObject>("AudioManager");
- if(audio ==null)
- {
- Debug.LogError(" GHZ_OOBE_230721 Packages内AudioManager组件丢失");
- audio = new GameObject();
- }
- GameObject Audio = GameObject.Instantiate(audio, transform);
- Audio.name = "AudioManager";
- }
- break;
- case "GHZ_XXXXXX_230721":
- break;
- default:
- m_ModelObj = Instantiate(prefab, transform);
- break;
- }
-
-
-
- gameObject.AddComponent<ManipulationHandler>();
- gameObject.AddComponent<BoundingBox>();
- yield return new WaitForSeconds(0.3f);
- ab.Unload(false);
- HideCollider();
- }
-
-
-
-
-
-
-
-
- }
- }
- public void LoadModel(AssetBundle ab)
- {
-
- LoadABModel(ab);
- }
- private void LoadABModel(AssetBundle ab)
- {
- if (ab == null)
- {
- Debug.Log("Failed to load AssetBundle!");
- }
- else
- {
- var prefab = ab.LoadAsset<GameObject>(ab.LoadAllAssets<GameObject>()[0].name);
- switch (prefab.name)
- {
- case "GHZ_OOBE_230721":
- GameObject obj = Resources.Load<GameObject>("GongYe");
- if (obj == null)
- {
- Debug.LogError(" GHZ_OOBE_230721 物体加载失败,请查看是否导入相关Packages ");
- obj = new GameObject();
- }
- m_ModelObj = GameObject.Instantiate(obj, transform);
- m_ModelObj.name = "GongYe";
- if (GameObject.Find("AudioManager") == null)
- {
- GameObject audio = Resources.Load<GameObject>("AudioManager");
- if (audio == null)
- {
- Debug.LogError(" GHZ_OOBE_230721 Packages内AudioManager组件丢失");
- audio = new GameObject();
- }
- GameObject Audio = GameObject.Instantiate(audio, null);
- Audio.name = "AudioManager";
- }
- break;
- case "GHZ_XXXXXX_230721":
- break;
- default:
- m_ModelObj = Instantiate(prefab, transform);
- break;
- }
-
-
- gameObject.AddComponent<ManipulationHandler>();
- gameObject.AddComponent<BoundingBox>();
-
- ab.Unload(false);
- HideCollider();
- }
- }
- protected override void OnAwake()
- {
- base.OnAwake();
- }
- public override void SetData(MaterialObjValue value, int updateTime)
- {
-
- base.SetData(value, updateTime);
-
-
-
-
-
- if (!GameManager.Instance.IsRuning)
- {
-
- DownLoadMaterial data = new DownLoadMaterial();
- data.downLoadPath = value.DownloadPath;
- data.localLoadPath = Application.persistentDataPath + "/Material/" + Path.GetFileName(value.DownloadPath);
- data.updataTime = GameManager.Instance.m_SceneValue.updateTime;
- data.type = "3";
- MsgHandler.AddListener(value.DownloadPath, HandleMsg);
- DownloadResManager.Instance.DownLoad(data);
- Debug.Log(" SetData " + updateTime);
- }
- else
- {
- AssetBundle ab = AssetBundle.LoadFromFile(Data.localSavePath);
- if (ab == null)
- {
- Debug.Log("Failed to load AssetBundle!");
- return;
- }
- var prefab = ab.LoadAsset<GameObject>(ab.LoadAllAssets<GameObject>()[0].name);
- m_ModelObj = Instantiate(prefab, transform);
- ab.Unload(false);
- gameObject.AddComponent<ManipulationHandler>();
- gameObject.AddComponent<BoundingBox>();
-
-
-
-
-
-
-
- }
- }
- private void HandleMsg(Msg msg)
- {
- AssetBundle ab = AssetBundle.LoadFromFile(Data.localSavePath);
- if (ab == null)
- {
- Debug.Log("Failed to load AssetBundle!");
- return;
- }
- var prefab = ab.LoadAsset<GameObject>(ab.LoadAllAssets<GameObject>()[0].name);
- m_ModelObj = Instantiate(prefab, transform);
- ab.Unload(false);
- gameObject.AddComponent<ManipulationHandler>();
- gameObject.AddComponent<BoundingBox>();
- }
- public override void HideCollider()
- {
- base.HideCollider();
- }
- }
|