public bool MapAssetPath(string assetPath, out string assetbundleName, out string assetName)
        {
            assetbundleName = null;
            assetName       = null;
            ResourcesMapItem item = null;

            if (pathLookup.TryGetValue(assetPath, out item))
            {
                assetbundleName = item.assetbundleName;
                assetName       = item.assetName;
                return(true);
            }
#if UNITY_EDITOR
            else
            {
                foreach (var VARIABLE in pathLookup.Keys)
                {
                    if (VARIABLE.ToLower().Equals(assetPath.ToLower()))
                    {
                        item            = pathLookup[VARIABLE];
                        assetbundleName = item.assetbundleName;
                        assetName       = item.assetName;
                        Logger.LogError($"{assetPath} 没有找到, 是不是要找{VARIABLE}");
                        return(true);
                    }
                }
            }
#endif
            return(false);
        }
        public void Initialize(string content)
        {
            if (string.IsNullOrEmpty(content))
            {
                Logger.LogError("ResourceNameMap empty!!");
                return;
            }

            content = content.Replace("\r\n", "\n");
            string[] mapList = content.Split('\n');
            foreach (string map in mapList)
            {
                if (string.IsNullOrEmpty(map))
                {
                    continue;
                }

                string[] splitArr = map.Split(new[] { PATTREN }, System.StringSplitOptions.None);
                if (splitArr.Length < 2)
                {
                    Logger.LogError("splitArr length < 2 : " + map);
                    continue;
                }

                ResourcesMapItem item = new ResourcesMapItem();
                // 如:assetspackage/ui/prefab/assetbundleupdaterpanel_prefab.assetbundle
                item.assetbundleName = splitArr[0];
                // 如:Assets/AssetsPackage/UI/Prefab/AssetbundleUpdaterPanel.prefab
                item.assetName = splitArr[1];

                // 如:Assets/AssetsPackage/
                string assetPath = null;
                string mapHead   = string.Format("Assets/{0}/", AssetBundleConfig.AssetsFolderName);
                if (item.assetName.StartsWith(mapHead))
                {
                    // 如:UI/Prefab/AssetbundleUpdaterPanel.prefabd
                    assetPath = GameUtility.FormatToUnityPath(item.assetName.Replace(mapHead, ""));
                }

                pathLookup.Add(assetPath, item);
                List <string> assetsList = null;
                assetsLookup.TryGetValue(item.assetbundleName, out assetsList);
                if (assetsList == null)
                {
                    assetsList = new List <string>();
                }
                if (!assetsList.Contains(item.assetName))
                {
                    assetsList.Add(item.assetName);
                }
                assetsLookup[item.assetbundleName] = assetsList;
                assetbundleLookup.Add(item.assetName, item.assetbundleName);
            }
        }
        public void Initialize(string content)
        {
            if (string.IsNullOrEmpty(content))
            {
                Logger.LogError("ResourceNameMap empty!!");
                return;
            }

            content = content.Replace("\r\n", "\n");
            string[] mapList = content.Split('\n');
            foreach (string map in mapList)
            {
                if (string.IsNullOrEmpty(map))
                {
                    continue;
                }

                string[] splitArr = map.Split(new[] { PATTREN }, System.StringSplitOptions.None);
                if (splitArr.Length < 2)
                {
                    Logger.LogError("splitArr length < 2 : " + map);
                    continue;
                }

                ResourcesMapItem item = new ResourcesMapItem();
                // 如:ui/prefab/assetbundleupdaterpanel_prefab.assetbundle
                item.assetbundleName = splitArr[0];
                // 如:UI/Prefab/AssetbundleUpdaterPanel.prefab
                item.assetName = splitArr[1];

                var assetPath = item.assetName;
                if (!pathLookup.ContainsKey(assetPath))
                {
                    pathLookup.Add(assetPath, item);
                }
                List <string> assetsList = null;
                assetsLookup.TryGetValue(item.assetbundleName, out assetsList);
                if (assetsList == null)
                {
                    assetsList = new List <string>();
                }
                if (!assetsList.Contains(item.assetName))
                {
                    assetsList.Add(item.assetName);
                }
                assetsLookup[item.assetbundleName] = assetsList;
                if (!assetbundleLookup.ContainsKey(item.assetName))
                {
                    assetbundleLookup.Add(item.assetName, item.assetbundleName);
                }
            }
        }
Exemple #4
0
        public bool MapAssetPath(string assetPath, out string assetbundleName, out string assetName)
        {
            assetbundleName = null;
            assetName       = null;
            ResourcesMapItem item = null;

            if (pathLookup.TryGetValue(assetPath, out item))
            {
                assetbundleName = item.assetbundleName;
                assetName       = item.assetName;
                return(true);
            }
            return(false);
        }