using System.Collections; using System.Collections.Generic; using UnityEngine; using XRTool.Util; using SC.XR.Unity.Module_InputSystem; using System; using System.Linq; using ShadowStudio.Model; namespace ShadowStudio.Tool { /// /// 对象创建器 /// 下载器,资源加载器,和载体容器的开发 /// 资源初始化:初始化,按照资源的类型(2D,3D,等文件类型)进行分块初始化,生成对应的icon(item cell) /// 对应的item可以检测对应的资源准备情况,例如外部未下载,本地已下载,本地resources,读取某路径,unitybase等 /// 进行资源的准备(下载,)创建实例化,封装到容器(例如图片,视频,或者无法独立展示的资源需要容器) /// 有的资源无需准备(resource下的资源,unitybase,视频资源(流媒体)) /// 其他的资源可能要下载(进度更新),检测(MD5校验),更新 /// 不同资源的加载方式不同,实例化方式不同。 /// 展示方法不同,模型,预制体等可直接展示,其他的效果需要借助容器(图片播放器,视频播放器,音视频播放器)来展示 /// 内存回收方式可能不同,删除销毁等等 /// public class ObjectCreator : UnitySingleton { /// /// 创建一个模型 /// public void CreateObject(ArtInfo artInfo) { if (artInfo.InstaceType == InstaceType.AssetBundle) { } else if (artInfo.InstaceType == InstaceType.ExtralURLDownload) { } else if (artInfo.InstaceType == InstaceType.LocalPath) { } else if (artInfo.InstaceType == InstaceType.ResourceLoad) { var obj = Resources.Load(artInfo.Url); if (obj) { } } else if (artInfo.InstaceType == InstaceType.UnityBase) { GameObject.CreatePrimitive((PrimitiveType)int.Parse(artInfo.Url)); } } } }