/// <summary> /// 获取需要新加载的资源配置表 by吴江 /// </summary> /// <param name="_newData">新场景所需要的整体资源</param> /// <param name="_oldData">原场景已经有的整体资源</param> /// <returns>新场景还需要加载的资源表</returns> private SceneConfigData GetNeedLoad(SceneConfigData _newData) { SceneConfigData needLoadData = SceneConfigData.CreateInstance<SceneConfigData>(); needLoadData.name = _newData.name; needLoadData.instanceID = _newData.instanceID; //获取旧场景中不存在的新资源 foreach (var newData in _newData.textureDataList) { if (!LoadCache.HasLoaded(newData, AssetType.texture) && !needLoadData.textureDataList.Contains(newData)) { needLoadData.textureDataList.Add(newData); } } foreach (var newData in _newData.shaderDataList) { if (!LoadCache.HasLoaded(newData, AssetType.shader) && !needLoadData.shaderDataList.Contains(newData)) { needLoadData.shaderDataList.Add(newData); } } foreach (var newData in _newData.materialDataList) { if (!LoadCache.HasLoaded(newData, AssetType.material) && !needLoadData.materialDataList.Contains(newData)) { needLoadData.materialDataList.Add(newData); } } return needLoadData; }
public static SceneConfigData MergeNeed(List<SceneConfigData> _data) { SceneConfigData newdata = SceneConfigData.CreateInstance<SceneConfigData>(); newdata.Name = string.Empty; for (int i = 0; i < _data.Count; i++) { SceneConfigData item = _data[i]; for (int j = 0; j < item.textureDataList.Count; j++) { if (!newdata.textureDataList.Contains(item.textureDataList[j])) { newdata.textureDataList.Add(item.textureDataList[j]); } } for (int j = 0; j < item.shaderDataList.Count; j++) { if (!newdata.shaderDataList.Contains(item.shaderDataList[j])) { newdata.shaderDataList.Add(item.shaderDataList[j]); } } for (int j = 0; j < item.materialDataList.Count; j++) { if (!newdata.materialDataList.Contains(item.materialDataList[j])) { newdata.materialDataList.Add(item.materialDataList[j]); } } } return newdata; }