Exemplo n.º 1
0
        public void SetAssetBundleName()
        {
            // 脑子不好,直接粗糙算法,直接按照顺序加下去
            //int length = _assets_map.Count;
            float  leftSize  = EAssetBundleConst.ASSETBUILD_MAX_SIZE;
            string directory = EPathHelper.AbsoluteToRelativePathRemoveAssets(_directory);
            int    nameIndex = 1;

            foreach (var info in _assetsMap)
            {
                string assetPath = info.Key;
                float  fileSize  = EMemorySizeHelper.CalculateTextureSizeBytes(assetPath);
                if (fileSize >= EAssetBundleConst.ASSETBUILD_MAX_SIZE)
                {
                    SetAbName(info.Key, directory, nameIndex);
                    nameIndex++;
                }
                else
                {
                    if (leftSize >= fileSize)
                    {
                        SetAbName(assetPath, directory, nameIndex);
                        leftSize = leftSize - fileSize;
                    }
                    else
                    {
                        nameIndex++;
                        leftSize = EAssetBundleConst.ASSETBUILD_MAX_SIZE - fileSize;

                        SetAbName(assetPath, directory, nameIndex);
                    }
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 根据Asset的上层目录设置Asset的名字
        /// </summary>
        public static void SetAbNameByDirectory(string assetPath)
        {
            AssetImporter importer = AssetImporter.GetAtPath(assetPath);

            if (importer != null)
            {
                // 剔除Assets/
                string removeAssetPath = EPathHelper.AbsoluteToRelativePathRemoveAssets(assetPath);
                // 得到文件的目录
                string str = EPathHelper.GetDirectory(removeAssetPath);
                importer.assetBundleName = str + EAssetBundleConst.ASSETBUNDLE_EXTENSION;
                importer.SaveAndReimport();
            }
            else
            {
                Debug.LogError("找不到对应的路径的资源:" + assetPath);
            }
        }
Exemplo n.º 3
0
 public BuildAssetInOneAb(string path)
 {
     _directory = path;
     _abName    = EPathHelper.AbsoluteToRelativePathRemoveAssets(_directory);
     _init();
 }