前言
- 本篇主要内容是通过代码实现unitypackage包的导入,可应用场景如下
- Package资源里的实例 unitypackage 包资源导入
- 外部的unitypackage 包资源导入等等
相关API
- AssetDatabase.ImportPackage(packagePath, true); // 导入包
代码
public static class ImporterKit
{
private const string PackageStartName = "com.unity.textmeshpro";
private const string PackageExtension = ".unitypackage";
[MenuItem("Tools/Import/UnityPackage")]
public static void ImportUnityPackage()
{
string packageCacheDir = Path.Combine(Application.dataPath, "../Library/PackageCache/");
string[] packageDirs = Directory.GetDirectories(packageCacheDir, PackageStartName + "*", SearchOption.TopDirectoryOnly);
if (packageDirs.Length == 0)
{
Debug.LogError("Package directory not found: " + PackageStartName);
return;
}
foreach (var packageDir in packageDirs)
{
string[] packageFiles = Directory.GetFiles(packageDir, "*" + PackageExtension, SearchOption.AllDirectories);
if (packageFiles.Length > 0)
{
string packagePath = packageFiles[0];
AssetDatabase.ImportPackage(packagePath, true);
Debug.Log("Package imported: " + packagePath);
return;
}
}
Debug.LogError("No .unitypackage file found in directories starting with: " + PackageStartName);
}
}