/// <summary> /// 按照优先级高到低排序 /// </summary> private void SortLoadAssetPathPriority() { m_LoadAssetPathOfPriority.Clear(); m_LoadAssetPathOfPriority.AddRange(m_LoadAssetPath); if (m_LoadAssetPathOfPriority.Count == 0) { Debug.LogError("没有配置资源加载路径 优先级关系"); return; } m_LoadAssetPathOfPriority.Sort((lparameter, rparameter) => { if (lparameter.m_AssetPathEnum == LoadAssetPathEnum.None) { return(1); } if (lparameter.m_Priority < rparameter.m_Priority) { return(1); } if (lparameter.m_Priority == rparameter.m_Priority) { return(0); } return(-1); }); //默认优先级是从高到低 #if UNITY_EDITOR if (IsDevelopMode) { int index = -1; for (int dex = 0; dex < m_LoadAssetPathOfPriority.Count; ++dex) { if (m_LoadAssetPathOfPriority[dex].m_AssetPathEnum == LoadAssetPathEnum.ResourcesPath) { index = dex; break; } } if (index == -1) { Debug.LogError("SortLoadAssetPathPriority Fail,Not Define ResourcesLoad"); return; } LoadAssetPathInfor resourceLoadInfor = m_LoadAssetPathOfPriority[index]; m_LoadAssetPathOfPriority.RemoveAt(index); resourceLoadInfor.m_Priority = int.MaxValue; m_LoadAssetPathOfPriority.Insert(0, resourceLoadInfor); }//编辑器开发者模式下优先加载Resources 目录资源 for (int dex = 0; dex < m_LoadAssetPathOfPriority.Count; ++dex) { Debug.LogEditorInfor(string.Format("dex={0} value={1}", dex, m_LoadAssetPathOfPriority[dex].m_AssetPathEnum)); } #endif }
/// <summary> /// 设置默认的优先级 /// </summary> private void SetDefaultLoadPathInfor() { m_LoadAssetPath.Clear(); var loadAssetPaths = System.Enum.GetValues(typeof(LoadAssetPathEnum)); int priority = 1; foreach (var item in loadAssetPaths) { LoadAssetPathInfor infor = new LoadAssetPathInfor(); infor.m_AssetPathEnum = (LoadAssetPathEnum)System.Enum.Parse(typeof(LoadAssetPathEnum), item.ToString()); infor.m_Priority = priority; if (infor.m_AssetPathEnum == LoadAssetPathEnum.None) { continue; } m_LoadAssetPath.Add(infor); ++priority; } }