//private YuU3dAppSetting locU3DApp;

        //public YuU3dAppSetting LocU3DApp
        //{
        //    get
        //    {
        //        if (locU3DApp != null && !string.IsNullOrEmpty(locU3DApp.LocAppId))
        //        {
        //            return locU3DApp;
        //        }

        //        locU3DApp = YuEditorUtility.TryGetLocAppAtDir(Dir);
        //        return locU3DApp;
        //    }
        //}

        /// <summary>
        /// 获得自身目录下所有符合过滤配置的文件路径列表。
        /// </summary>
        /// <returns></returns>
        public List <string> SelfDirPaths()
        {
            var paths = IOUtility.GetPaths(Dir);

            paths = paths.Where(p => AssetBundleBuilder.EndCheck(IgnoreRule, p))
                    .Where(p => AssetBundleBuilder.ContainCheck(IgnoreRule, p)).ToList();
            return(paths);
        }
        public AssetBundleBuildSizeInfo GetSizeInfo()
        {
            if (BuildType != AssetBundleBuildType.BuildAtSize)
            {
                throw new Exception($"目录{Dir}的打包方式不是尺寸打包!");
            }

            var dirId = IOUtility.GetSomeDirPath(Dir, 3);

            AtSizeSetting.SizeInfo = new AssetBundleBuildSizeInfo();
            var fileInfos = IOUtility.GetFileInfosAtDir(Dir, true)
                            .Where(d => AssetBundleBuilder.EndCheck(IgnoreRule, d.FullName))
                            .Where(d => AssetBundleBuilder.ContainCheck(IgnoreRule, d.FullName)).ToList();
            long maxSize     = AtSizeSetting.PackageSize * 1024;
            long currentSize = 0;
            var  bundleIndex = 0;
            var  paths       = new List <string>();

            foreach (var fileInfo in fileInfos)
            {
                var path = fileInfo.FullName;
                path         = path.ReplaceDoubleBackslash();
                currentSize += fileInfo.Length;
                if (fileInfo.Length >= maxSize)
                {
                    var assetId = Path.GetFileNameWithoutExtension(fileInfo.Name);
                    AtSizeSetting.SizeInfo.AppOutFile(path, assetId);
                    Debug.Log($"{fileInfo.Name} 文件大小大于尺寸分包的最大尺寸");
                    continue;
                }

                if (currentSize <= maxSize)
                {
                    paths.Add(path);
                }
                else
                {
                    AddSubPackage();
                    paths.Add(path);
                }
            }

            AddSubPackage(); // 添加最后一个子包尺寸小于分包限制的剩余资源
            AtSizeSetting.SetSizeTotal(AtSizeSetting.SizeInfo.GetAssetTotal());
            AssetBundleEditorDati.GetSingleDati().Save();
            return(AtSizeSetting.SizeInfo);

            void AddSubPackage()
            {
                var subBundleId = $"{dirId}_{bundleIndex}".ToLower();

                AtSizeSetting.SizeInfo.AddSubPacakage(subBundleId, paths);
                bundleIndex++;
                currentSize = 0;
                paths.Clear();
            }
        }
        public List <string> GetFileIds()
        {
            var paths      = IOUtility.GetPaths(Dir);
            var ignoreRule = IgnoreRule;

            paths = paths.Where(p => AssetBundleBuilder.EndCheck(IgnoreRule, p))
                    .Where(p => AssetBundleBuilder.ContainCheck(IgnoreRule, p)).ToList();
            var fileIds = paths.Select(Path.GetFileNameWithoutExtension).ToList();

            return(fileIds);
        }