デフォルトでは、Unity はメインエディタープロセスでアセットを 1 つずつ順番にインポートします。しかし、Unity は一部のアセットタイプに対して並列インポートもサポートしています。並列インポートは複数のプロセスを使用してアセットを同時にインポートするため、デフォルトの順番にインポートする方法よりも高速です。
並列インポートを有効にするには、Edit > Project Settings > Editor の順に移動し、Asset Pipeline セクションの下にある Parallel Import チェックボックスを有効にします。
Unity の Parallel Import (並列インポート) 機能は、特定の種類のアセットのみをサポートしています。これは、標準的なアセットデータベースの更新を実行する場合 (エディターが Project フォルダー内の新しいまたは変更されたアセットを検出し、自動的にそれらをインポートする) にのみ適用されます。
Unity が並行インポートできる具体的なアセットの種類は以下の通りです。
その他の種類のアセットは、アセットデータベースの更新時に常に順番にインポートされます。
この設定は、Texture または Model アセットをインポート、更新、または作成するためにそれらを使用する場合、一部の Asset Database API メソッドでも適用されます。それらは以下のとおりです。
並列インポートは別々のプロセスで動作するため、スクリプトインポーターコードの副作用もまた、メインエディタープロセスではなく各プロセスで発生します。別のプロセスで発生する副作用は、予期しない問題を引き起こす可能性があります。例えば、ワーカースレッドでインポート中に C# クラスの静的変数を変更した場合、その変更は自動的にエディターのメインスレッドで実行されるコードには表示されません。
インポートのために書いたコードは常に自己完結型で決定論的であり、実行するコンテキストを変更すべきではありません (例えば、エディターの設定を変更したり、ディスク上に新しいアセットを作成するなど)。これらのルールに従うことで、インポーターコードの並列スレッドの問題を回避できます。また、インポート結果が常に一貫しており、エディターは常にキャッシュされたアーティファクトを使用し、アセットを不必要に再インポートすることがないようにします。
Asset Pipeline の設定には、インポートワーカープロセスの動作を制御するための 3 つの設定があります。これらの設定は、プロジェクトごとに異なります。
Unity によって新しいプロジェクトに設定される Desired Import Worker Count のデフォルト値を制御することもできます。これを行うには、Preferences > Asset Pipeline > Import Worker Count % の順に移動します。
新しいプロジェクトを作成するとき、Unity は Import Worker Count % 値を使用して、システムで利用可能な論理コア数のパーセンテージに対応するプロジェクトの Desired Import Worker Count 値を割り当てます。
例えば、システムに 16 個の論理コアがあり、この設定が 25% に設定されている場合、新しいプロジェクトの Desired Import Worker Count は 4 になります。この値をあまり高く設定すると、インポートワーカープロセスは他のプロセスやファイルの読み書きなどのシステムリソースと競合し上回る必要があります。25% のデフォルト値は、ほとんどの状況に適しています。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.