ThirdPartyPackageProcessor

Static processor pipeline that runs pre-processing and post-processing steps on third-party packages during import. Manages a registry of per-package ProcessorTable instances that drive asset renaming and remapping.

Definition

Namespace: Paragon.Editor.ThirdPartyPackageImporter Assembly: Paragon.Editor.dll

internal static class ThirdPartyPackageProcessor

Remarks

ThirdPartyPackageProcessor implements a two-phase processing pipeline for third-party package imports. Each phase runs a fixed, ordered list of Processor subclasses over the package's import items.

Processing Pipeline

spinner

Processor Lists

Phase
Processor
Purpose

Pre

PathProcessor

Normalizes import paths based on ProcessorTable rules

Pre

PrepareProcessor

Prepares assets and directories before Unity import

Post

FBXProcessor

Fixes FBX import settings after Unity import

Post

MaterialProcessor

Remaps and fixes material references

Post

MetaProcessor

Cleans up or adjusts .meta files

ProcessorTable Registry

Each package can have an associated ProcessorTable — a context-aware lookup table downloaded from Google Sheets via ThirdPartyPackageUtility. The table is registered with RegisterProcessorTable(packageID, table) and retrieved by processors via GetProcessorTable(packageID).

Processor tables contain rename/remap rules organized by context: VARIABLES, DIRECTORIES, FILES, MATERIALS, MESHES, ANIMATIONS. Variables can be referenced in other contexts and are expanded at parse time.

Quick Lookup

Goal
How

Run pre-processors on a package

ThirdPartyPackageProcessor.PreProcessPackage(package)

Run post-processors on a package

ThirdPartyPackageProcessor.PostProcessPackage(package)

Get a specific processor

ThirdPartyPackageProcessor.GetProcessor<PathProcessor>()

Register a processor table

ThirdPartyPackageProcessor.RegisterProcessorTable(packageID, table)

Get a processor table

ThirdPartyPackageProcessor.GetProcessorTable(packageID)

Methods

PreProcessPackage

Runs all pre-processors in order (PathProcessor → PrepareProcessor) on the given package.

Parameter
Type
Description

package

ThirdPartyPackage

The package being imported

PostProcessPackage

Runs all post-processors in order (FBXProcessor → MaterialProcessor → MetaProcessor) on the given package.

Parameter
Type
Description

package

ThirdPartyPackage

The package being imported

GetProcessor<TProcessor>

Retrieves a processor instance by type. Searches pre-processors first, then post-processors.

Type Parameters:

  • TProcessor — Must derive from Processor

Returns: The matching processor instance, or null if not found.

RegisterProcessorTable

Associates a ProcessorTable with a package ProductID. Replaces any existing table for that ID.

Parameter
Type
Description

packageID

int

Asset Store ProductID

processorTable

ProcessorTable

The lookup table for asset renaming/remapping

GetProcessorTable

Retrieves the ProcessorTable for a package, or null if none is registered.

Parameter
Type
Description

packageID

int

Asset Store ProductID

Common Pitfalls

circle-exclamation
circle-exclamation
circle-exclamation

See Also

Last updated