AssetPostprocessor

class in UnityEditor

マニュアルに切り替える

説明

AssetPostprocessor を利用すると、インポートしたパイプラインをフックし、アセットをインポートする前と後にスクリプトを実行することが可能になります。

During model import the functions are called in the the following order:
- OnPreprocessModel is called at the very beginning and you can override ModelImporter settings that are used for the whole model import process.
- Once Meshes and Materials are imported, we create GameObjects hierarchy from the imported nodes. Every GameObject that represents imported node gets correspondent MeshFilter, MeshRenderer and MeshCollider components. Before assigning a Material to the MeshRenderer OnAssignMaterialModel function is invoked.
- After GameObject has initialized MeshRenderers and "userdata" exists OnPostprocessGameObjectWithUserProperties is called. That happens before children GameObjects are generated.
- If animation generation was not disabled at previous stages (see ModelImporter.generateAnimations), then SkinnedMesh and Animations are generated. If possible Avatar is also created and GameObjecs hierarchy is optimized. After that OnPostprocessModel is called for the root GameObject.

OnPreprocessSpeedTree and OnPostprocessSpeedTree are called on SpeedTree assets (.spm file) the same way as OnPreprocessModel and OnPostprocessModel, except that the assetImporter type is SpeedTreeImporter.

In a production pipeline AssetPostprocessors should always be placed in pre-built dll's in the project instead of in scripts. AssetPostprocessors change the output of imported assets, thus a compile error in one of the scripts will lead to assets being imported differently. This can be a severe issue when working in a production pipeline. By using dll's for AssetPostprocessors you ensure that they can always be executed even if the scripts have compile errors. This way you can override default values in the import settings or modify the imported data like textures or meshes.

変数

assetImporterインポートしようとしている AssetImporter を参照します
assetPathインポートされたアセットと、インポートしようとしているアセットに対してのパスを取得します

Public 関数

GetPostprocessOrderインポート処理される順番を設定します
GetVersionアセットのポストプロセッサーのバージョンを返します
LogErrorコンソールにエラーログを表示します
LogWarningコンソールに警告ログを表示します

メッセージ

OnAssignMaterialModelソースマテリアルをフィードします。
OnPostprocessAllAssets任意の数のアセットのインポートが完了した後に呼び出されます(アセットの進捗バーが最後まで到達したとき)
OnPostprocessAssetbundleNameChangedアセットが他のアセットバンドルに指定される場合に呼び出されるハンドラー
OnPostprocessAudioこの関数をサブクラスに追加してオーディオクリップがインポート完了したときに通知を取得します
OnPostprocessGameObjectWithUserPropertiesインポートファイルで少なくとも 1つのユーザープロパティーがアタッチされた各ゲームオブジェクトに対して呼び出されます。
OnPostprocessModelこの関数をサブクラスに追加してモデルのインポートが完了したときに通知を取得します
OnPostprocessSpeedTreeサブクラスにこの関数を加え、SpeedTree アセットのインポートが完了したら通知を受け取ります。
OnPostprocessSpritesこの関数をサブクラスに追加すると、スプライトのテクスチャをインポートし終わったときに通知を受ける事ができます。
OnPostprocessTextureこの関数をサブクラスに追加してテクスチャのインポート完了の直後に通知を取得します
OnPreprocessAnimationこの関数をサブクラスに追加してモデル (.fbx、.mb ファイル等) のインポート完了の直前に通知を取得します
OnPreprocessAudioこの関数をサブクラスに追加してオーディオクリップのインポート完了の直前に通知を取得します
OnPreprocessModelこの関数をサブクラスに追加してモデル (.fbx、.mb ファイル等) のインポート完了の直前に通知を取得します
OnPreprocessSpeedTreeスピードツリーのアセット(.spm 形式のファイル)をインポートする直前に通知を受け取りたい場合は、この関数をサブクラスに追加してください。
OnPreprocessTextureこの関数をサブクラスに追加してテクスチャインポートツール実行の直前に通知を取得します