ThirdPartyPackageInfo
Internal class holding identity and metadata for a third-party package. Contains static identifiers (product name, ID, bundle name), import configuration (import folder, hash), and mutable version state populated by Fetch() from the Unity Asset Store and local manifests.
Definition
Namespace: Paragon.Editor.ThirdPartyPackageImporter Assembly: Paragon.Editor.dll
internal class ThirdPartyPackageInfoRemarks
The package info represents the "what" of a third-party package — its identity and where to find it — while ThirdPartyPackageVersion represents a specific version's details.
Bundle Name Extraction
The bundleName is extracted from packageName using a regex that captures the first three dot-separated segments: ^([^.]+\.[^.]+\.[^.]+). For example, com.unity.render-pipelines.universal.14.0.8 yields com.unity.render-pipelines.
Local Package Detection
A package is considered "local" (IsLocalPackage == true) when its importFolder equals "Third-Party". Local packages have their manifests stored in the project's Third-Party/ directory and are managed via Plastic SCM mounted imports.
Properties
ProductName
string
public
Human-readable package name
ProductID
int
public
Unity Asset Store product identifier
BundleName
string
public
First three segments of the package name (e.g., com.company.package)
PackageName
string
public
Full package identifier (e.g., com.company.package.1.0.0)
CatalogID
int
public
Catalog identifier
ImportFolder
string
public
Target import folder path
Hash
string
public
Package content hash
IsLocalPackage
bool
public
true if ImportFolder == "Third-Party" (managed via mounted import)
InstalledVersion
ThirdPartyPackageVersion
public
Currently installed version (populated by Fetch()). null if not installed
StoreVersion
ThirdPartyPackageVersion
public
Latest available version from the store (populated by Fetch())
Constructors
productName
string
Display name
productID
int
Asset Store product ID
packageName
string
Full package name
catalogID
int
Catalog identifier
importFolder
string
Target import folder
hash
string
Content hash
Methods
Fetch
Populates InstalledVersion and StoreVersion by querying the Unity Package Database and local manifests.
Version resolution logic:
Queries
ServicesContainer.PackageDatabase.GetPackage()using the product IDFor the installed version:
If a local UPM package exists (
PackageInfo.FindForPackageName) and a local manifest exists → creates version from the local manifestOtherwise, if the store package has an imported version → creates version from the store's imported data
Otherwise →
null(not installed)
For the store version: always creates from the store package's latest version
Fetch() requires the Package Manager database. This method accesses Unity's internal PackageDatabase via reflection proxy (ServicesContainer.PackageDatabase). It will return early without setting versions if the package is not found in the database.
See Also
ThirdPartyPackageVersion — the version objects this info holds
ThirdPartyPackage — the extracted package that references this info
Package Overview — package subsystem overview
Last updated