Unity 6.3
0 онлайн 39 гостей 3 в системе
Вход

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.