Example #1
0
        //-------∽-★-∽------∽-★-∽--------∽-★-∽资源相关∽-★-∽--------∽-★-∽------∽-★-∽--------//

        /// <summary>
        /// 获取assets下的图片sprite
        /// </summary>
        /// <param name="link"></param>
        /// <returns></returns>
        public static Sprite GetSprite(string link)
        {
            string atlasName = LinkTextureData.GetAtlasName(link);

            atlasName = AtlasBatchSetting.GetBatchedAtlasName(atlasName);   //获取打包的图集
            string spriteName = LinkTextureData.GetTextureName(link);
            string path       = GetAtlasPath(atlasName);

            if (_cachedSpritesDict.ContainsKey(path) == false)
            {
                _cachedSpritesDict.Add(path, AssetDatabase.LoadAllAssetsAtPath(path));
            }

            Object[] sprites = _cachedSpritesDict[path];
            if (sprites.Length == 0)
            {
                throw new Exception("未找到图集: " + path);
            }

            foreach (Object obj in sprites)
            {
                if (obj.name == spriteName)
                {
                    return(obj as Sprite);
                }
            }
            throw new Exception("未找到Sprite: " + path + " " + spriteName);
        }
Example #2
0
        public static void Generate(string jsonName, InputParam inputParam_)
        {
            Initialize();

            _isHighQuality = inputParam_.isHighQuality;

            _atlasName = AtlasBatchSetting.GetBatchedAtlasName(jsonName);   //获取实际的图集名称

            //WriteBatchedReadme(_atlasName, jsonName);   //提醒图集已经移到partxx

            List <string> batchedAtlasNameList = AtlasBatchSetting.GetBatchedAtlasNameList(jsonName);    //收集此图集包含的所有json名称

            for (int i = 0; i < batchedAtlasNameList.Count; i++)
            {
                string name = batchedAtlasNameList[i];
                if (batchedAtlasNameList.Count == 1 || i > 0)   //如果多于一个,跳过第一个,因为那个是目标图集,不是界面
                {
                    JsonData jsonData = KAssetManager.GetUIJsonData(name);
                    ProcessJson(jsonData);  //处理所有该图集需要用到的json, 不只是该界面的json
                }
            }

            //处理散图
            ProcessTextureDataList();

            if (_uniqueTextureDataList.Count > 0)
            {
                //需要生成图集
                GenerateAtlas();
            }
            else
            {
                Debug.Log("面板资源都在公共图集中~~~~");
            }
        }
Example #3
0
        static void ProcessJson(JsonAsset json, InputParam param_)
        {
            StopWatch.StartST();

            try
            {
                if (param_.isGenerateAtlas)
                {
                    //需要生成图集
                    if (AtlasBatchSetting.IsAtlasNameRecord(json.name))
                    {
                        //记录已经生成过, 之后不再生成
                    }
                    else
                    {
                        AtlasBatchSetting.RecordAtlasName(json.name);
                        GenerateAtlas(json.name, param_);
                    }
                }


                GeneratePrefab(json, param_);
            }
            catch (Exception e)
            {
                throw e;
            }

            Debug.Log("导出成功: " + json.name + "  耗时:" + (StopWatch.StopST(false) / 1000).ToString("f2") + " s");
        }
Example #4
0
        static void PrepareAtlasFolders(string atlasName)
        {
            List <string> names = AtlasBatchSetting.GetBatchedAtlasNameList(atlasName);

            for (int i = 0; i < names.Count; i++)
            {
                KAssetManager.CreateAtlasFolder(names[i]);
            }
        }
Example #5
0
        /// <summary>
        /// 执行生成_文件模式
        /// </summary>
        /// <param name="jsonAssets"></param>
        /// <param name="isGenerateAtlas">是否生成图集</param>
        /// <param name="isHighQuality"></param>
        /// <param name="isBuildAssetbundle"></param>
        public static void ExecuteFileMode(JsonAsset[] jsonAssets, InputParam param_)
        {
            AtlasBatchSetting.Initialize();
            AtlasQualitySetting.Initialize();
            AtlasSpritePaddingHelper.Initialize();
            PrefabGenerator.Initialize();

            for (int i = 0; i < jsonAssets.Length; i++)
            {
                if (jsonAssets[i] != null)
                {
                    ProcessJson(jsonAssets[i], param_);
                }
            }
        }