PackageRegistrationEventArgs
класс в UnityEditor.PackageManager
Описание
Предоставляет сведения об изменениях регистрации пакетов, происходящих во время операций Package Manager.
Этот класс содержит сведения о пакетах, которые добавляются, удаляются или обновляются в проекте.
Замечания
- Используйте этот класс с Events.registeringPackages и Events.registeredPackages событий.
- Коллекции
changedFromиchangedToдолжны итерироваться вместе, чтобы поддерживать соответствие пакетов. Они гарантированно совпадают по длине и порядку. - Все коллекции доступны только для чтения и не могут изменяться.
- Сведения о пакете в этих коллекциях отражают состояние на момент события.
PackageRegistrationEventArgsможет содержать пустые коллекции, если пакеты не были добавлены, удалены или изменены.- С помощью этого класса можно отслеживать изменения пакетов.
using System; using UnityEditor.PackageManager; using UnityEngine;
[ExecuteInEditMode] public class PackageRegistrationExample: MonoBehaviour { void Start() { SubscribeToPackageEvents(); }
void OnDestroy() { Cleanup(); }
void SubscribeToPackageEvents() { // Subscribe to the event before packages change Debug.Log("Subscribing to registeringPackages"); Events.registeringPackages += OnPackagesRegistering; }
void OnPackagesRegistering(PackageRegistrationEventArgs args) { // Log added packages foreach (var package in args.added) { Debug.Log($"Adding package: {package.displayName} ({package.version})"); }
// Log removed packages foreach (var package in args.removed) { Debug.Log($"Removing package: {package.displayName} ({package.version})"); }
// Log package updates using var changes = args.changedFrom.GetEnumerator(); using var targets = args.changedTo.GetEnumerator(); while (changes.MoveNext() && targets.MoveNext()) { var oldPackage = changes.Current; var newPackage = targets.Current; Debug.Log($"Updating {oldPackage?.displayName} from {oldPackage?.version} to {newPackage?.version}"); } }
void Cleanup() { // Unsubscribe from the event when finished Debug.Log("Unsubscribing to registeringPackages"); Events.registeringPackages -= OnPackagesRegistering; } }
Соответствующая информация
Свойства
| Свойство | Описание |
|---|---|
| added | Коллекция записей PackageInfo для добавления во время процесса регистрации Package Manager. |
| changedFrom | Коллекция записей PackageInfo, описывающих пакеты, которые будут перезаписаны другой версией во время процесса регистрации Package Manager. |
| changedTo | Набор записей PackageInfo, описывающих пакеты, которые в ходе регистрации в Package Manager переопределят ранее зарегистрированную версию. |
| removed | Коллекция записей PackageInfo для удаления во время процесса регистрации Package Manager. |