ModelManager.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Linq;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using UnityEngine;
  6. public class ModelManager : Singleton<ModelManager>
  7. {
  8. // public Dictionary<string, ModelItem> modellist = new Dictionary<string, ModelItem>();
  9. public Dictionary<int, ModelList> modellist = new Dictionary<int, ModelList>();
  10. public GameObject materialLibrary;
  11. public void init(string message)
  12. {
  13. GameManager.Instance.text.text = " 获取素材列表";
  14. JObject jObject = JObject.Parse(message);
  15. string data = jObject["data"].ToString();
  16. JObject dataObject = JObject.Parse(data);
  17. string single = dataObject["single"].ToString();
  18. string library = dataObject["library"].ToString();
  19. string combination = dataObject["combination"].ToString();
  20. materialLibrary = new GameObject("MaterailLibrary");
  21. // 把三个素材库数据转成素材列表
  22. AddDicModelList(single);
  23. AddDicModelList(library);
  24. AddDicModelList(combination);
  25. }
  26. private void AddDicModelList(string message)
  27. {
  28. if (!string.IsNullOrWhiteSpace(message))
  29. {
  30. List<ModelList> ModelList = JsonConvert.DeserializeObject<List<ModelList>>(message);
  31. Debug.Log(ModelList.Count + " AddDicModelList " + message);
  32. for (int i = 0; i < ModelList.Count; i++)
  33. {
  34. ModelList[i].materalLibrary = materialLibrary.transform;
  35. modellist.Add(ModelList[i].id, ModelList[i]);
  36. if (ModelList[i].Model == null)
  37. Debug.Log(" 初始化 Model ");
  38. for (int j = 0; j < ModelList[i].materialList.Count; j++)
  39. {
  40. ModelList[i].materialList[j].init(ModelList[i].Model);
  41. }
  42. // DownLoadModel(ModelList[i]);
  43. }
  44. }
  45. }
  46. public ModelList GetModelList(int id)
  47. {
  48. GameObject obj = GameObject.Instantiate(modellist[id].Model);
  49. return obj.GetComponent<ModelList>();
  50. }
  51. private void DownLoadModel(ModelList list)
  52. {
  53. for (int i = 0; i < list.materialList.Count; i++)
  54. {
  55. if (list.materialList[i].Model != null)
  56. Debug.Log(" 检测下载 " + list.materialList[i].name);
  57. }
  58. }
  59. }