bingo 项目提交
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BingoBrain.Editor
|
||||
{
|
||||
public class AssetBundleBuildKit
|
||||
{
|
||||
public const string AssetBundleRootPath = "Assets/AssetHotFix/";
|
||||
public const string AssetBundleSuffix = ".assetbundle";
|
||||
static void SetABName(string assetPath)
|
||||
{
|
||||
var importerPath = $"Assets{assetPath[Application.dataPath.Length..]}";
|
||||
importerPath = importerPath.Replace("\\", "/");
|
||||
const string assetBundleRootPath = AssetBundleRootPath;
|
||||
|
||||
if (importerPath.StartsWith(assetBundleRootPath))
|
||||
{
|
||||
var bundleName = importerPath.Replace(assetBundleRootPath, "");
|
||||
|
||||
var endIndex = bundleName.LastIndexOf("/", StringComparison.Ordinal);
|
||||
|
||||
if (endIndex <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var fileInfo = new FileInfo(importerPath);
|
||||
|
||||
if ((fileInfo.Attributes & FileAttributes.Directory) == 0)
|
||||
{
|
||||
try
|
||||
{
|
||||
bundleName = bundleName.ToLower().Substring(0, endIndex).Replace("/", ".");
|
||||
|
||||
var importer = AssetImporter.GetAtPath(importerPath);
|
||||
if (importer != null)
|
||||
{
|
||||
importer.assetBundleName = $"{bundleName}{AssetBundleSuffix}";
|
||||
if (importer.assetBundleName != null)
|
||||
{
|
||||
importer.assetBundleVariant = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.LogError(importerPath);
|
||||
Debug.LogError(endIndex);
|
||||
Debug.LogError(e.Message);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void SetAssetBundlesName(string _assetsPath)
|
||||
{
|
||||
var dir = new DirectoryInfo(_assetsPath);
|
||||
|
||||
var files = dir.GetFileSystemInfos();
|
||||
|
||||
for (var i = 0; i < files.Length; i++)
|
||||
{
|
||||
if (files[i] is DirectoryInfo)
|
||||
{
|
||||
SetAssetBundlesName(files[i].FullName);
|
||||
}
|
||||
else if (!files[i].Name.EndsWith(".meta"))
|
||||
{
|
||||
SetABName(files[i].FullName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void ClearAssetBundlesName()
|
||||
{
|
||||
var abNames = AssetDatabase.GetAllAssetBundleNames();
|
||||
|
||||
|
||||
for (var i = 0; i < abNames.Length; i++)
|
||||
{
|
||||
AssetDatabase.RemoveAssetBundleName(abNames[i], true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user