assetPath | 资源的路径。 |
string 返回给定资源所属的 AssetBundle 的名称。有关更多详细信息,请参阅此方法描述。
返回给定资源所属的 AssetBundle 的名称。
如果资源已显式分配给 AssetBundle,则返回该值。 如果资源不属于 AssetBundle,则会遍历其父文件夹,直到找到属于 AssetBundle 的资源。如果找到与此条件匹配的文件夹,则返回其 AssetBundle 名称。如果未找到,则返回空字符串。
using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEditor; public class AssetDatabaseExamples : MonoBehaviour { [MenuItem("AssetDatabase/CheckBundleNames")] static void CheckBundleNames() { var assetsWithIncorrectBundle = new List<string>(); var correctBundleName = "metaltexturebundle"; //Check if any of the assets have an incorrect bundle set to them for (var i = 0; i < 10; i++) { var texturePath = $"Assets/Textures/Metal/Metal{i}.png"; if(AssetDatabase.GetImplicitAssetBundleName(texturePath) != correctBundleName) assetsWithIncorrectBundle.Add(texturePath); }
//If no such assets exist then return if (!assetsWithIncorrectBundle.Any()) return; //If there are such assets then print them out var incorrectAssetNames = ""; foreach (var asset in assetsWithIncorrectBundle) { incorrectAssetNames += $"\"{asset}\" "; } Debug.LogWarning($"Assets with an incorrect Asset Bundle {incorrectAssetNames}"); } }