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

スクリプト言語

好きな言語を選択してください。選択した言語でスクリプトコードが表示されます。

AssetPostprocessor

class in UnityEditor

フィードバック

ありがとうございます

この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。

閉じる

送信に失敗しました

なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。

閉じる

キャンセル

マニュアルに切り替える

説明

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 でコンパイルされるもの)がコンパイルエラーを出した場合でも、正常に動作ができるようになります。 この方法により、インポート設定のデフォルト値を上書きしたり、テクスチャやメッシュのようなデータを変更することができます。

変数

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

Public 関数

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

メッセージ

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