123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823 |
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Reflection;
- using UnityEditor;
- using UnityEngine;
- using UnityEngine.XR;
- using UnityEditor.PackageManager;
- using UnityEditor.PackageManager.Requests;
- public class LoadSamplesSettings
- {
- [MenuItem("GHZ/GHZXRLoadSamples/RemoveALL")]
- public static void RemoveALLInit()
- {
- try
- {
- FileUtil.DeleteFileOrDirectory("Assets/Immersal");
- }
- catch
- {
- }
- try
- {
- FileUtil.DeleteFileOrDirectory("Assets/AVProPlayer");
- }
- catch
- {
- }
- try
- {
- FileUtil.DeleteFileOrDirectory("Assets/GHZSDK");
- }
- catch
- {
- }
- try
- {
- FileUtil.DeleteFileOrDirectory("Assets/TriLibXR");
- }
- catch
- {
- }
- try
- {
- FileUtil.DeleteFileOrDirectory("Assets/LoginXR");
- }
- catch
- {
- }
- try
- {
- FileUtil.DeleteFileOrDirectory("Assets/OOBEPackage");
- }
- catch
- {
- }
- try
- {
- FileUtil.DeleteFileOrDirectory("Assets/LiveKitRTC");
- }
- catch
- {
- }
- try
- {
- FileUtil.DeleteFileOrDirectory("Assets/YiYanPackage");
- }
- catch
- {
- }
- List<string> strlist = new List<string>();
- strlist.Add("jh.xr.engine");
- strlist.Add("con.ghz.login");
- strlist.Add("con.ghz.obe");
- strlist.Add("com.maxst.unilivekit");
- strlist.Add("com.ghz.yiyan");
- strlist.Add("jh.trilib.engine");
- strlist.Add("com.ghz.avideoplayer");
- strlist.Add("jh.immersalsdk.engine");
- strlist.Add("com.ximmerse.xr");
- strlist.Add("com.unity.xr.arcore");
- strlist.Add("com.unity.xr.arfoundation");
- strlist.Add("com.unity.webrtc");
- strlist.Add("com.cysharp.unitask");
- strlist.Add("com.unity.inputsystem");
- strlist.Add("com.ghz.xr");
- strlist.Add("com.ghz.mqtt");
- ListRequest request = Client.List(true);
- while (!request.IsCompleted)
- {
- System.Threading.Thread.Sleep(500);
- // 等待PackageManager请求完成
- }
- List<string> strlist2 = new List<string>();
- Directory.CreateDirectory("Assets/LoginXR");
- // AssetDatabase.Refresh();
- EditorApplication.delayCall += () =>
- {
- System.Threading.Thread.Sleep(1000);
- if (request.Status == StatusCode.Success)
- {
- foreach (UnityEditor.PackageManager.PackageInfo package in request.Result)
- {
- if (strlist.Contains(package.name)) // 替换为你的Package名称
- {
- strlist2.Add(package.name);
- }
- }
- }
- else
- {
- Debug.LogError("Failed to list installed packages: " + request.Error.message);
- }
- if(strlist2.Count>0)
- {
- AddAndRemoveRequest rest = Client.AddAndRemove(null, strlist2.ToArray());
- while (!rest.IsCompleted)
- {
- // 等待PackageManager请求完成
- System.Threading.Thread.Sleep(500);
- }
- }
- Debug.Log("RemoveBack Error=1=>");
- AssetDatabase.Refresh();
- };
- }
- [MenuItem("GHZ/GHZXRLoadSamples/LoadALL")]
- public static void LoadALLInit()
- {
- ListRequest request = Client.List(true);
- Debug.Log("LoadALLInit");
- if(GHZSDKSettings.loadSDKType!=null)
- {
- if(GHZSDKSettings.isNewSDK)
- {
- PlayerSDKLoadSamplesSet(request, GHZSDKSettings.loadSDKType);
- }else
- {
- PlayerShadowSDKSamplesSet(request);
- }
- }
- PlayerAVProSamplesSet(request);
- PlayerImmersalSamplesSet(request);
- PlayerTriLibSamplesSet(request);
- PlayerYiTanSamplesSet(request);
- PlayerLiveSamplesSet(request);
- PlayerOOBESamplesSet(request);
- PlayerLoginSamplesSet(request);
- PlayerBaseSamplesSet(request);
- PlayerMQTTSamplesSet(request);
- }
- public static void PlayerMQTTSamplesSet(ListRequest request)
- {
- try
- {
- FileUtil.DeleteFileOrDirectory("Assets/MQTT");
- }
- catch
- {
- }
- AssetDatabase.Refresh();
- System.Threading.Thread.Sleep(1000);
- while (!request.IsCompleted)
- {
- System.Threading.Thread.Sleep(500);
- // 等待PackageManager请求完成
- }
- Directory.CreateDirectory("Assets/MQTT");
- AssetDatabase.Refresh();
- System.Threading.Thread.Sleep(1000);
- EditorApplication.delayCall += () =>
- {
- System.Threading.Thread.Sleep(1000);
- if (request.Status == StatusCode.Success)
- {
- foreach (UnityEditor.PackageManager.PackageInfo package in request.Result)
- {
- if (package.name == "com.ghz.mqtt") // 替换为你的Package名称
- {
- string packagePath = package.assetPath + "/package/Samples~";//"Packages/com.ghz.avideoplayer"; // 替换为你的Package路径
- string destinationPath = "Assets/MQTT/" + package.name; // 替换为你想要放置Samples的目标路径
- FileUtil.CopyFileOrDirectory(packagePath, destinationPath);
- AssetDatabase.Refresh();
- }
- }
- }
- else
- {
- Debug.LogError("Failed to list installed packages: " + request.Error.message);
- }
- };
- }
- public static void PlayerBaseSamplesSet(ListRequest request)
- {
- try
- {
- FileUtil.DeleteFileOrDirectory("Assets/BaseLoad");
- }
- catch
- {
- }
- AssetDatabase.Refresh();
- System.Threading.Thread.Sleep(1000);
- while (!request.IsCompleted)
- {
- System.Threading.Thread.Sleep(500);
- // 等待PackageManager请求完成
- }
- Directory.CreateDirectory("Assets/BaseLoad");
- AssetDatabase.Refresh();
- System.Threading.Thread.Sleep(1000);
- EditorApplication.delayCall += () =>
- {
- System.Threading.Thread.Sleep(1000);
- if (request.Status == StatusCode.Success)
- {
- foreach (UnityEditor.PackageManager.PackageInfo package in request.Result)
- {
- if (package.name == "jh.baseeditor.engine") // 替换为你的Package名称
- {
- string packagePath = package.assetPath + "/Samples~";//"Packages/com.ghz.avideoplayer"; // 替换为你的Package路径
- string destinationPath = "Assets/BaseLoad/" + package.name; // 替换为你想要放置Samples的目标路径
- FileUtil.CopyFileOrDirectory(packagePath, destinationPath);
- AssetDatabase.Refresh();
- }
- }
- }
- else
- {
- Debug.LogError("Failed to list installed packages: " + request.Error.message);
- }
- };
- }
- public static void PlayerLoginSamplesSet(ListRequest request)
- {
- try
- {
- FileUtil.DeleteFileOrDirectory("Assets/LoginXR");
- }
- catch
- {
- }
- AssetDatabase.Refresh();
- System.Threading.Thread.Sleep(1000);
- while (!request.IsCompleted)
- {
- System.Threading.Thread.Sleep(500);
- // 等待PackageManager请求完成
- }
- Directory.CreateDirectory("Assets/LoginXR");
- AssetDatabase.Refresh();
- System.Threading.Thread.Sleep(1000);
- EditorApplication.delayCall += () =>
- {
- System.Threading.Thread.Sleep(1000);
- if (request.Status == StatusCode.Success)
- {
- foreach (UnityEditor.PackageManager.PackageInfo package in request.Result)
- {
- if (package.name == "con.ghz.login") // 替换为你的Package名称
- {
- string packagePath = package.assetPath + "/package/Samples~";//"Packages/com.ghz.avideoplayer"; // 替换为你的Package路径
- string destinationPath = "Assets/LoginXR/" + package.name; // 替换为你想要放置Samples的目标路径
- FileUtil.CopyFileOrDirectory(packagePath, destinationPath);
- AssetDatabase.Refresh();
- }
- }
- }
- else
- {
- Debug.LogError("Failed to list installed packages: " + request.Error.message);
- }
- };
- }
- public static void PlayerOOBESamplesSet(ListRequest request)
- {
- try
- {
- FileUtil.DeleteFileOrDirectory("Assets/OOBEPackage");
- }
- catch
- {
- }
- AssetDatabase.Refresh();
- System.Threading.Thread.Sleep(1000);
- while (!request.IsCompleted)
- {
- // 等待PackageManager请求完成
- System.Threading.Thread.Sleep(500);
- }
- Directory.CreateDirectory("Assets/OOBEPackage");
- AssetDatabase.Refresh();
- System.Threading.Thread.Sleep(1000);
- EditorApplication.delayCall += () =>
- {
- System.Threading.Thread.Sleep(1000);
- if (request.Status == StatusCode.Success)
- {
- foreach (UnityEditor.PackageManager.PackageInfo package in request.Result)
- {
- if (package.name == "con.ghz.obe") // 替换为你的Package名称
- {
- string packagePath = package.assetPath + "/package/Samples~";//"Packages/com.ghz.avideoplayer"; // 替换为你的Package路径
- string destinationPath = "Assets/OOBEPackage/" + package.name; // 替换为你想要放置Samples的目标路径
- FileUtil.CopyFileOrDirectory(packagePath, destinationPath);
- AssetDatabase.Refresh();
- }
- }
- }
- else
- {
- Debug.LogError("Failed to list installed packages: " + request.Error.message);
- }
- };
- }
- public static void PlayerLiveSamplesSet(ListRequest request)
- {
- try
- {
- FileUtil.DeleteFileOrDirectory("Assets/LiveKitRTC");
- }
- catch
- {
- }
- AssetDatabase.Refresh();
- System.Threading.Thread.Sleep(1000);
- while (!request.IsCompleted)
- {
- System.Threading.Thread.Sleep(500);
- // 等待PackageManager请求完成
- }
- Directory.CreateDirectory("Assets/LiveKitRTC");
- AssetDatabase.Refresh();
- System.Threading.Thread.Sleep(1000);
- EditorApplication.delayCall += () =>
- {
- System.Threading.Thread.Sleep(1000);
- if (request.Status == StatusCode.Success)
- {
- foreach (UnityEditor.PackageManager.PackageInfo package in request.Result)
- {
- if (package.name == "com.maxst.unilivekit") // 替换为你的Package名称
- {
- string packagePath = package.assetPath + "/Samples~";//"Packages/com.ghz.avideoplayer"; // 替换为你的Package路径
- string destinationPath = "Assets/LiveKitRTC/" + package.name; // 替换为你想要放置Samples的目标路径
- FileUtil.CopyFileOrDirectory(packagePath, destinationPath);
- AssetDatabase.Refresh();
- }
- }
- }
- else
- {
- Debug.LogError("Failed to list installed packages: " + request.Error.message);
- }
- };
- }
- public static void PlayerYiTanSamplesSet(ListRequest request)
- {
- try
- {
- FileUtil.DeleteFileOrDirectory("Assets/YiYanPackage");
- }
- catch
- {
- }
- AssetDatabase.Refresh();
- System.Threading.Thread.Sleep(1000);
- while (!request.IsCompleted)
- {
- // 等待PackageManager请求完成
- System.Threading.Thread.Sleep(500);
- }
- Directory.CreateDirectory("Assets/YiYanPackage");
- AssetDatabase.Refresh();
- System.Threading.Thread.Sleep(1000);
- EditorApplication.delayCall += () =>
- {
- System.Threading.Thread.Sleep(1000);
- if (request.Status == StatusCode.Success)
- {
- foreach (UnityEditor.PackageManager.PackageInfo package in request.Result)
- {
- if (package.name == "com.ghz.yiyan") // 替换为你的Package名称
- {
- string packagePath = package.assetPath + "/package/Samples~";//"Packages/com.ghz.avideoplayer"; // 替换为你的Package路径
- string destinationPath = "Assets/YiYanPackage/" + package.name; // 替换为你想要放置Samples的目标路径
- FileUtil.CopyFileOrDirectory(packagePath, destinationPath);
- AssetDatabase.Refresh();
- }
- }
- }
- else
- {
- Debug.LogError("Failed to list installed packages: " + request.Error.message);
- }
- };
- }
- public static void PlayerTriLibSamplesSet(ListRequest request)
- {
- try
- {
- FileUtil.DeleteFileOrDirectory("Assets/TriLibXR");
- }
- catch
- {
- }
- AssetDatabase.Refresh();
- System.Threading.Thread.Sleep(1000);
- while (!request.IsCompleted)
- {
- // 等待PackageManager请求完成
- System.Threading.Thread.Sleep(500);
- }
- Directory.CreateDirectory("Assets/TriLibXR");
- AssetDatabase.Refresh();
- System.Threading.Thread.Sleep(1000);
- EditorApplication.delayCall += () =>
- {
- System.Threading.Thread.Sleep(1000);
- if (request.Status == StatusCode.Success)
- {
- foreach (UnityEditor.PackageManager.PackageInfo package in request.Result)
- {
- if (package.name == "jh.trilib.engine") // 替换为你的Package名称
- {
- string packagePath = package.assetPath + "/Samples~";//"Packages/com.ghz.avideoplayer"; // 替换为你的Package路径
- string destinationPath = "Assets/TriLibXR/" + package.name; // 替换为你想要放置Samples的目标路径
- FileUtil.CopyFileOrDirectory(packagePath, destinationPath);
- AssetDatabase.Refresh();
- }
- }
- }
- else
- {
- Debug.LogError("Failed to list installed packages: " + request.Error.message);
- }
- };
- }
- public static void PlayerImmersalSamplesSet(ListRequest request)
- {
- try
- {
- FileUtil.DeleteFileOrDirectory("Assets/Immersal");
- }
- catch
- {
- }
- AssetDatabase.Refresh();
- System.Threading.Thread.Sleep(1000);
- Directory.CreateDirectory("Assets/Immersal");
- AssetDatabase.Refresh();
- System.Threading.Thread.Sleep(1000);
- while (!request.IsCompleted)
- {
- System.Threading.Thread.Sleep(500);
- // 等待PackageManager请求完成
- }
- AssetDatabase.Refresh();
- EditorApplication.delayCall += () =>
- {
- System.Threading.Thread.Sleep(1000);
- if (request.Status == StatusCode.Success)
- {
- foreach (UnityEditor.PackageManager.PackageInfo package in request.Result)
- {
- if (package.name == "jh.immersalsdk.engine") // 替换为你的Package名称
- {
- string packagePath = package.assetPath + "/package/Samples~";//"Packages/com.ghz.avideoplayer"; // 替换为你的Package路径
- string destinationPath = "Assets/Immersal/" + package.name; // 替换为你想要放置Samples的目标路径
- FileUtil.CopyFileOrDirectory(packagePath, destinationPath);
- AssetDatabase.Refresh();
- }
- }
- }
- else
- {
- Debug.LogError("Failed to list installed packages: " + request.Error.message);
- }
- };
- }
- public static void PlayerAVProSamplesSet(ListRequest request)
- {
- try
- {
- FileUtil.DeleteFileOrDirectory("Assets/AVProPlayer");
- }
- catch
- {
- }
- AssetDatabase.Refresh();
- System.Threading.Thread.Sleep(1000);
- Debug.Log("正在加载插件包:CreateDirectory");
- Directory.CreateDirectory("Assets/AVProPlayer");
- AssetDatabase.Refresh();
- System.Threading.Thread.Sleep(1000);
- while (!request.IsCompleted)
- {
- }
- AssetDatabase.Refresh();
- Debug.Log("正在加载插件包:IsCompleted");
- if (request.Status == StatusCode.Success)
- {
- Debug.Log("正在加载插件包:Success");
- foreach (UnityEditor.PackageManager.PackageInfo package in request.Result)
- {
- if (package.name == "com.ghz.avideoplayer") // 替换为你的Package名称
- {
- Debug.Log("正在加载插件包:package");
- string packagePath = package.assetPath + "/Samples~";//"Packages/com.ghz.avideoplayer"; // 替换为你的Package路径
- EditorApplication.delayCall += () =>
- {
- Debug.Log("正在加载插件包:delayCall");
- System.Threading.Thread.Sleep(1000);
- string destinationPath = "Assets/AVProPlayer/" + package.name; // 替换为你想要放置Samples的目标路径
- FileUtil.CopyFileOrDirectory(packagePath, destinationPath);
- AssetDatabase.Refresh();
- Debug.Log("正在加载插件包:Refresh");
- };
- }
- }
- }
- else
- {
- Debug.LogError("Failed to list installed packages: " + request.Error.message);
- }
- }
- public static void PlayerShadowSDKSamplesSet(ListRequest request)
- {
- try
- {
- FileUtil.DeleteFileOrDirectory("Assets/GHZSDK");
- }
- catch
- {
- }
- AssetDatabase.Refresh();
- System.Threading.Thread.Sleep(1000);
- while (!request.IsCompleted)
- {
- System.Threading.Thread.Sleep(500);
- // 等待PackageManager请求完成
- }
- try
- {
- if (!Directory.Exists("Assets/Plugins/Android/"))
- {
- Directory.CreateDirectory("Assets/Plugins");
- Directory.CreateDirectory("Assets/Plugins/Android");
- }
- }
- catch
- {
- }
- try
- {
- if (File.Exists("Assets/Plugins/Android/AndroidManifest.xml"))
- {
- FileUtil.DeleteFileOrDirectory("Assets/Plugins/Android/AndroidManifest.xml");
- }
- }
- catch
- {
- }
- if (request.Status == StatusCode.Success)
- {
- Debug.Log("开始所搜是否有测试案例:");
- foreach (UnityEditor.PackageManager.PackageInfo package in request.Result)
- {
- if (package.name == "jh.xr.engine" || package.name == "com.ximmerse.xr" || package.name == "com.ghz.xr") // 替换为你的Package名称
- {
- string packagePath = package.assetPath + "/Samples~";//"Packages/com.ghz.avideoplayer"; // 替换为你的Package路径
- string destinationPath = "Assets/GHZSDK/" + package.name; // 替换为你想要放置Samples的目标路径
- FileUtil.CopyFileOrDirectory(packagePath, destinationPath);
- // if (type =="DreamGlass")
- // {
- Debug.Log("找到测试案例 进行复制:");
- packagePath = package.assetPath + "/Samples~/ShadowCreator/Plugins/Android/AndroidManifest.xml";//"Packages/com.ghz.avideoplayer"; // 替换为你的Package路径
- destinationPath = "Assets/Plugins/Android/AndroidManifest.xml"; // 替换为你想要放置Samples的目标路径
- FileUtil.CopyFileOrDirectory(packagePath, destinationPath);
- // }
- Debug.Log("找到测试案例 全部复制完成:");
- AssetDatabase.Refresh();
- }
- }
- }
- else
- {
- Debug.LogError("Failed to list installed packages: " + request.Error.message);
- }
- // 模拟等待2秒
- // 在这里执行异步操作完成后的逻辑
- }
- public static void PlayerSDKLoadSamplesSet(ListRequest request ,string type)
- {
- try
- {
- FileUtil.DeleteFileOrDirectory("Assets/GHZSDK");
- }
- catch
- {
- }
- AssetDatabase.Refresh();
- while (!request.IsCompleted)
- {
- // 等待PackageManager请求完成
- }
- if (type == "DreamGlass")
- {
- try
- {
- if (!Directory.Exists("Assets/Plugins/Android/"))
- {
- Directory.CreateDirectory("Assets/Plugins");
- Directory.CreateDirectory("Assets/Plugins/Android");
- }
- }
- catch
- {
- }
- try
- {
- if (File.Exists("Assets/Plugins/Android/AndroidManifest.xml.OLD"))
- {
- FileUtil.DeleteFileOrDirectory("Assets/Plugins/Android/AndroidManifest.xml.OLD");
- }
- }
- catch
- {
- }
- try
- {
- if (File.Exists("Assets/Plugins/Android/AndroidManifest.xml"))
- {
- FileUtil.CopyFileOrDirectory("Assets/Plugins/Android/AndroidManifest.xml", "Assets/Plugins/Android/AndroidManifest.xml.OLD");
- FileUtil.DeleteFileOrDirectory("Assets/Plugins/Android/AndroidManifest.xml");
- }
- }
- catch
- {
- }
- }
- else
- {
- try
- {
- if (File.Exists("Assets/Plugins/Android/AndroidManifest.xml.OLD"))
- {
- if (File.Exists("Assets/Plugins/Android/AndroidManifest.xml"))
- {
- FileUtil.DeleteFileOrDirectory("Assets/Plugins/Android/AndroidManifest.xml");
- }
- FileUtil.CopyFileOrDirectory("Assets/Plugins/Android/AndroidManifest.xml.OLD", "Assets/Plugins/Android/AndroidManifest.xml");
- FileUtil.DeleteFileOrDirectory("Assets/Plugins/Android/AndroidManifest.xml.OLD");
- }
- }
- catch
- {
- }
- }
- if (request.Status == StatusCode.Success)
- {
- Debug.Log("开始所搜是否有测试案例:");
- foreach (UnityEditor.PackageManager.PackageInfo package in request.Result)
- {
- Debug.Log("开始所搜是否有测试案例:" + package.name);
- if (package.name == "jh.xr.engine" || package.name == "com.ximmerse.xr" || package.name == "com.ghz.xr") // 替换为你的Package名称
- {
- string packagePath = package.assetPath + "/Samples~";//"Packages/com.ghz.avideoplayer"; // 替换为你的Package路径
- string destinationPath = "Assets/GHZSDK/" + package.name; // 替换为你想要放置Samples的目标路径
- FileUtil.CopyFileOrDirectory(packagePath, destinationPath);
- if (type == "DreamGlass")
- {
- Debug.Log("找到测试案例 进行复制:");
- packagePath = package.assetPath + "/Samples~/SDK/Plugins/Android/AndroidManifest.xml";//"Packages/com.ghz.avideoplayer"; // 替换为你的Package路径
- destinationPath = "Assets/Plugins/Android/AndroidManifest.xml"; // 替换为你想要放置Samples的目标路径
- FileUtil.CopyFileOrDirectory(packagePath, destinationPath);
- }
- Debug.Log("找到测试案例 全部复制完成:");
- AssetDatabase.Refresh();
- }
- }
- }
- else
- {
- Debug.LogError("Failed to list installed packages: " + request.Error.message);
- }
- }
- }
|