ObjectCreator.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using XRTool.Util;
  5. using SC.XR.Unity.Module_InputSystem;
  6. using System;
  7. using System.Linq;
  8. using ShadowStudio.Model;
  9. namespace ShadowStudio.Tool
  10. {
  11. /// <summary>
  12. /// 对象创建器
  13. /// 下载器,资源加载器,和载体容器的开发
  14. /// 资源初始化:初始化,按照资源的类型(2D,3D,等文件类型)进行分块初始化,生成对应的icon(item cell)
  15. /// 对应的item可以检测对应的资源准备情况,例如外部未下载,本地已下载,本地resources,读取某路径,unitybase等
  16. /// 进行资源的准备(下载,)创建实例化,封装到容器(例如图片,视频,或者无法独立展示的资源需要容器)
  17. /// 有的资源无需准备(resource下的资源,unitybase,视频资源(流媒体))
  18. /// 其他的资源可能要下载(进度更新),检测(MD5校验),更新
  19. /// 不同资源的加载方式不同,实例化方式不同。
  20. /// 展示方法不同,模型,预制体等可直接展示,其他的效果需要借助容器(图片播放器,视频播放器,音视频播放器)来展示
  21. /// 内存回收方式可能不同,删除销毁等等
  22. /// </summary>
  23. public class ObjectCreator : UnitySingleton<ObjectCreator>
  24. {
  25. /// <summary>
  26. /// 创建一个模型
  27. /// </summary>
  28. public void CreateObject(ArtInfo artInfo)
  29. {
  30. if (artInfo.InstaceType == InstaceType.AssetBundle)
  31. {
  32. }
  33. else if (artInfo.InstaceType == InstaceType.ExtralURLDownload)
  34. {
  35. }
  36. else if (artInfo.InstaceType == InstaceType.LocalPath)
  37. {
  38. }
  39. else if (artInfo.InstaceType == InstaceType.ResourceLoad)
  40. {
  41. var obj = Resources.Load(artInfo.Url);
  42. if (obj)
  43. {
  44. }
  45. }
  46. else if (artInfo.InstaceType == InstaceType.UnityBase)
  47. {
  48. GameObject.CreatePrimitive((PrimitiveType)int.Parse(artInfo.Url));
  49. }
  50. }
  51. }
  52. }