Version: 5.4 (switch to 5.5b)
言語English
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

AssetPostprocessor

class in UnityEditor

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

マニュアルに切り替える

Description

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

モデルのインポート時、関数は以下の順番で呼び出されます:
- 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.
- アニメーション生成が以前に無効にされていなければ (ModelImporter.generateAnimations 参照)、スキンメッシュとアニメーションが生成されます。可能な場合は、アバターも作成され、ゲームオブジェクトのヒエラルキーが最適化されます。その後、OnPostprocessModel がルートのゲームオブジェクトのために呼び出されます。

assetImporter のタイプが SpeedTreeImporter であることを除き、OnPreprocessModelOnPostprocessModel と同様に、OnPreprocessSpeedTreeOnPostprocessSpeedTree が SpeedTree アセット (.spm file) に関して呼び出されます。

使用するときは AssetPostprocessor を継承したクラスを作成します実際に使用する際にはスクリプトは必ず事前にビルドされた DLL を準備し、プロジェクト内に置いておくことをお勧めします。 AssetPostprocessor はインポートされたアセットの出力を元に動作します。したがって、アセットのスクリプトにコンパイルエラーが検出された際にも、変更されたデータが出力されたと検出され、誤った動作をしてしまうことがあります。 この誤った動作はパイプライン処理に重大な問題へと繋がる恐れがあります。AssetPostprocessor 用の DLL を用意することで、スクリプト(Assembly-CSharp-Editor でコンパイルされるもの)がコンパイルエラーを出した場合でも、正常に動作ができるようになります。 この方法により、インポート設定のデフォルト値を上書きしたり、テクスチャやメッシュのようなデータを変更することができます。

Variables

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

Public Functions

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

Messages

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