生成本地package
- 新建一个Local文件夹, 将Library/package_cache , packages 里的文件都放入local
- 批量导入local
手动package manager 窗口添加
批量脚本添加
using System.IO;
using System.Linq;
using UnityEditor.PackageManager;
using UnityEditor.PackageManager.Requests;
using UnityEngine;
using UnityEditor;
using System.Collections.Generic;
public class PackageInstaller : MonoBehaviour
{
[MenuItem("Tools/Add Local Packages")]
public static void AddLocalPackages()
{
List<string> localPackages = new List<string>();
// 打印G:\UnityProj\Packages_Local\目录下的所有子文件名
Debug.Log("G:\\UnityProj\\Packages_Local\\目录下的所有子文件名:");
var files = System.IO.Directory.GetDirectories(Application.dataPath + "/../Packages_Local");
foreach (var file in files)
{
var name = Path.GetFileName(file);
Debug.Log(name);
localPackages.Add("file:/GameLib/UnityProj/Packages_Local/" + name);
}
// foreach (var package in localPackages)
// {
// Debug.Log(package);
// }
foreach (var package in localPackages)
{
AddPackage(package);
}
}
public static void AddPackage(string packagePath)
{
var request = Client.Add(packagePath);
while (!request.IsCompleted)
{
// Wait for the package to be added
}
if (request.Status == StatusCode.Success)
{
Debug.Log($"Package {packagePath} added successfully.");
}
else
{
Debug.LogError($"Failed to add package {packagePath}: {request.Error.message}");
}
}
}