Parallel Import に対応していません
c3-hoge-fuga-piyo opened this issue · 1 comments
Describe the bug
A clear and concise description of what the bug is.
Parallel Import が有効になっているとテクスチャが正しくインポートできず生成されたプレハブも不正な状態になってしまいました。
Importer.ImportAsset
で PostProcessImportAsset.ProcessingFile
などを設定し AssetDatabase.ImportAsset
を通して PostProcessImportAsset.OnPreprocessAsset
を呼び出していますが、 Parallel Import
が有効になっている場合インポート処理が行われるのはワーカースレッド上になるためここ の using
スコープを抜けた( PostProcessImportAsset.ProcessingFile
などがリセットされた)後に PostProcessImportAsset.OnPreprocessAsset
が呼ばれここでブロックされてしまい、結果テクスチャのインポート設定が意図していない状態になります( Sprite
になっていない、 userData
が空など)
ImportAssetOptions.ForceSynchronousImport
を指定して AssetDatabase.ImportAsset
を行うように処理を変更してみましたが、手元の環境だとワーカースレッド上でインポート処理を行うことは変わらずで今回の問題への対応とはならず、 Parallel Import に対応するには時間がかかりそうだっため一旦 Issue という形で提起させていただきました。
To Reproduce
Steps to reproduce the behavior:
Project Settings/Editor/Asset Pipeline/Parallel Import
を有効にする- 反映にUnity エディタの再起動が必要
- 画像を含む適当な XD ファイルを
XdImportSettings
経由でインポートする - アセットは生成されるが内容が正しくない
- テクスチャがデフォルトのインポート設定のまま(
Sprite
になっていない)ため、uGUIから参照できずにUIコンポーネントのSource Image
などがすべてNone
になる PostProcessImportAsset.OnPreprocessAsset
がスキップされるため、userData
にJSONデータが入らずここ で例外が発生する
- テクスチャがデフォルトのインポート設定のまま(
※非同期処理による問題なので環境によらず再現できるか不明です…… 🙇
Expected behavior
A clear and concise description of what you expected to happen.
Parallel Import が有効になっていてもアセットが正しい状態で生成される。
Environment
- Windows 10
- Unity 2022.2.0f1
- 7a2baa1
※Parallel Import 自体は Unity 2021.2 から提供されているため、おそらくこれ以降のバージョンなら発生する可能性があります。