ModelList.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using ShadowStudio.Model;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. using XRTool.Util;
  6. public class ModelList : UnitySingleton<ModelList>
  7. {
  8. public void AddItem(FileConfig fileConfig)
  9. {
  10. if (RoomFile.Instance.FilePrefabConfigList.Contains(fileConfig))
  11. {
  12. RoomFile.IfFilePrefabConfigListAction?.Invoke(fileConfig);
  13. }
  14. else
  15. {
  16. RoomFile.Instance.FilePrefabConfigList.Add(fileConfig);
  17. string url = fileConfig.Url;
  18. if (!url.Contains("http"))
  19. {
  20. url = "https://" + fileConfig.Url;
  21. }
  22. ArtInfo artInfo = new ArtInfo();
  23. artInfo.ArtId = "ArtId" + UnityEngine.Random.Range(10000000, 99999999).ToString();
  24. artInfo.ArtName = fileConfig.FileName;
  25. artInfo.Url = url;
  26. artInfo.ArtType = ArtType.Model;
  27. artInfo.InstaceType = InstaceType.ExtralURLDownload;
  28. ArtHandler handler = ArtInfoMgr.Instance.CreateArtHandler(artInfo);
  29. var container = handler.CreateArt();
  30. Transform objTran = container.GetInstace().transform;
  31. objTran.SetParent(this.transform);
  32. objTran.position = RoomFile.Instance.ModelPoint.position + new Vector3(objTran.GetSiblingIndex() * 0.2f, 0, 0);
  33. objTran.eulerAngles = RoomFile.Instance.Mp4Point.eulerAngles;
  34. ModelItem modelItem = objTran.GetComponent<ModelItem>();
  35. modelItem.Init(fileConfig);
  36. RoomFile.IfFilePrefabConfigListAction?.Invoke(fileConfig);
  37. }
  38. }
  39. public void DeleteAll()
  40. {
  41. if (transform.childCount > 0)
  42. {
  43. for (int i = 0; i < transform.childCount; i++)
  44. {
  45. Destroy(transform.GetChild(i).gameObject);
  46. }
  47. }
  48. }
  49. }