Exemple #1
0
        /// <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);
        }
Exemple #2
0
 private static void CheckUIRule(UIWindowAsset asset)
 {
     //TODO 导出前检查UI,比如只能使用一个图集,Text不勾选bestFit,不使用空的Image接受事件
     //var images = asset.GetComponentsInChildren<Image>(false);
 }