Events.registeredPackages
Параметры
| Параметр | Описание |
|---|---|
| значение | Структура PackageRegistrationEventArgs, описывающая изменения в списке зарегистрированных пакетов. |
Описание
Событие возникает после применения изменений в списке зарегистрированных пакетов.
Это событие запускается после завершения обновления базы данных ассетов, которое происходит после компиляции скриптов и перезагрузки домена, если это необходимо. При добавлении, обновлении или удалении пакета, содержащего код, домен перезагрузка Чтобы убедиться, что ваш обработчик событий вызван, используйте InitializeOnLoadAttribute или InitializeOnLoadMethodAttribute зарегистрировать обработчик событий после перезагрузки домена, но до триггера события.
Примечание: Нет никаких гарантий того, что AssetPostprocessor завершится к моменту возникновения этого события, так что не полагайтесь на порядок выполнения для событий после обработки.
using UnityEngine; using UnityEditor; using UnityEditor.PackageManager;
[ExecuteInEditMode] public class PackageRegistrationExample : MonoBehaviour { static PackageRegistrationExample() { Events.registeredPackages += OnPackagesRegistered; } void Start() { Client.Add("com.unity.textmeshpro"); }
static void OnPackagesRegistered(PackageRegistrationEventArgs args) { // Report added packages if (args.added.Count > 0) { Debug.Log("Packages added:"); foreach (var package in args.added) { Debug.Log($"- {package.name} ({package.version})"); } }
// Report removed packages if (args.removed.Count > 0) { Debug.Log("Packages removed:"); foreach (var package in args.removed) { Debug.Log($"- {package.name}"); } }
// Report changed packages for (int i = 0; i < args.changedFrom.Count; i++) { var oldPackage = args.changedFrom[i]; var newPackage = args.changedTo[i]; Debug.Log($"Package updated: {oldPackage.name}" + $"\nFrom: {oldPackage.version}" + $"\nTo: {newPackage.version}"); } } }
Соответствующая информация