デフォルトでは、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 つの設定があります。これらの設定は、プロジェクトごとに異なります。
The import worker process controls, in the Project Settings window.
設定名 | 説明 |
---|---|
Desired Import Worker Count | インポートパイプラインが並列で実行するのに最適なインポートワーカープロセスの数。 |
Standby Import Worker Count | アイドル状態でも保持する最小ワーカープロセス数です。 この数より多くのワーカープロセスがある場合、一定時間アイドル状態が続いたインポートワーカーをシャットダウンしてシステムリソースを解放します。このプロパティを使用すると、アイドル状態のプロセスがある場合に、新しいインポートワーカープロセスを起動する時間と比較して、システムリソースのバランスをどのようにするかを管理できます。 頻繁にモデル、アニメーション、またはテクスチャ作業を反復している場合、この値を増やすことでインポートのパフォーマンスが向上する可能性があります。 |
Idle Import Worker Shutdown Delay | アイドル状態のワーカーをシャットダウンするまでの待機時間 (秒) です。 |
You can also control the default values that Unity sets the Desired Import Worker Count to for new projects. To do this, go to Preferences > Asset Pipeline > Import Worker Count %.
The Importer Worker Count % setting in the Preferences window.
新しいプロジェクトを作成するとき、Unity は Import Worker Count % 値を使用して、システムで利用可能な論理コア数のパーセンテージに対応するプロジェクトの Desired Import Worker Count 値を割り当てます。
例えば、システムに 16 個の論理コアがあり、この設定が 25% に設定されている場合、新しいプロジェクトの Desired Import Worker Count は 4 になります。この値をあまり高く設定すると、インポートワーカープロセスは他のプロセスやファイルの読み書きなどのシステムリソースと競合し上回る必要があります。25% のデフォルト値は、ほとんどの状況に適しています。