/// <summary> /// TODO 导出UI前的工作 /// 生成图集 /// 检查1个只能使用一个图集,Text不勾选bestFit,不使用空的Image接受事件 /// </summary> /// <param name="asset"></param> private static void BeforeExportUIPrefab(UIWindowAsset asset) { /* 目录结构: * UIHello.unity * atlas * sprite1.png * .... * 每个目录下的atlas存放用到的图片,atlas文件夹打到一个图集中 */ var scene = EditorSceneManager.GetActiveScene(); var src_path = scene.path.Replace(scene.name + ".unity", "").Replace(Application.dataPath, "Assets/") + "atlas"; var dst_path = "Assets/" + KEngineDef.ResourcesBuildDir + "/UI/"; CreateSpriteAtlas(src_path, dst_path, asset.name); List <string> atlasNames = new List <string>(); var images = asset.GetComponentsInChildren <Image>(false); foreach (Image image in images) { if (image.sprite != null) { var atlasName = GetSpriteAtlasName(image); if (!string.IsNullOrEmpty(atlasName) && !atlasNames.Contains(atlasName)) { atlasNames.Add(atlasName); } } } asset.atals_arr = string.Join(",", atlasNames); }
private static void CheckUIRule(UIWindowAsset asset) { //TODO 导出前检查UI,比如只能使用一个图集,Text不勾选bestFit,不使用空的Image接受事件 //var images = asset.GetComponentsInChildren<Image>(false); }