//-------∽-★-∽------∽-★-∽--------∽-★-∽资源相关∽-★-∽--------∽-★-∽------∽-★-∽--------// /// <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); }
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("面板资源都在公共图集中~~~~"); } }
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"); }
static void PrepareAtlasFolders(string atlasName) { List <string> names = AtlasBatchSetting.GetBatchedAtlasNameList(atlasName); for (int i = 0; i < names.Count; i++) { KAssetManager.CreateAtlasFolder(names[i]); } }
/// <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_); } } }