ランタイムにゲームオブジェクトが動かない場合、それは 静的 (static) ゲームオブジェクト と呼ばれます。ランタイムにゲームオブジェクトが動く場合、それは 動的 (dynamic) ゲームオブジェクト と呼ばれます。
Unity の多くのシステムでは、 静的ゲームオブジェクトに関する情報をエディターで事前計算できます。ゲームオブジェクトは移動しないため、これらの計算結果はランタイムでも有効です。つまり、Unity はランタイムの計算を節約し、パフォーマンスを向上させることができます。
Static エディターフラグ プロパティは多くの Unity のシステムを備え、事前計算に静的ゲームオブジェクトを加えることができます。ドロップダウンを使用して、事前計算にゲームオブジェクトを加えるシステムを決定します。ランタイムに Static エディターフラグを設定しても、これらのシステムには影響しません。
システムがゲームオブジェクトについて知る必要がある場合にのみ、事前計算にオブジェクトを含む必要があります。システムが知る必要のないゲームオブジェクトを事前計算に含めると、計算が無駄になったり、 データファイルが不必要に大きくなったり、予期しない動作が発生することがあります。
Static エディターフラグ プロパティは、ゲームオブジェクトのインスペクターの右上にあります。Everything か Nothing に値を設定するチェックボックス、その他の値を選べるドロップダウンで構成されます。
GameObjectUtility.SetStaticEditorFlags API と GameObject.isStatic を使って、Static エディターフラグプロパティをコードで設定することができます。
以下の値が選択可能です。
プロパティ | 説明 |
---|---|
Nothing | システムの事前計算にゲームオブジェクトを加えません。 |
Everything | 以下のすべてのシステムの事前計算にゲームオブジェクトを加えます。 |
Contribute GI | このプロパティを有効にすると、Unity はターゲットの メッシュレンダラー をグローバルイルミネーションの計算に加えます。これらの計算は、ベイク時にライティングデータを事前計算しながら行われます。ContributeGI プロパティは、ReceiveGI プロパティをアクセス可能にします。Baked Global Illumination やRealtime Global Illumination などのグローバルイルミネーション設定を適応するシーンで有効にしている場合のみ、ContributeGI プロパティが有効になります。ライトプローブを使用した静的ライティングに関する Unity ブログ に、このフラグを使用するための説明が記載されています。さらに、Unityのビルトインレンダーパイプラインとライティングの設定については、こちらのページ を参照してください。 |
Occluder Static | オクルージョンカリングシステムで、ゲームオブジェクトが Static Occluder としてマークされます。詳細は、オクルージョンカリングシステム を参照してください。 |
Occludee Static | オクルージョンカリングシステムで、ゲームオブジェクトが Static Occludee としてマークされます。詳細は、オクルージョンカリングシステム を参照してください。 |
Batching Static | ゲームオブジェクトのメッシュを他の適切なメッシュと組み合わせると、ランタイムのレンダリングコストを削減できる可能性があります。詳細については、静的バッチ処理 を参照してください。 |
Navigation Static | ナビゲーションデータを事前計算するときにゲームオブジェクトを加えます。詳細は、ナビゲーションシステム のドキュメントを参照してください。 |
Off Mesh Link Generation | ナビゲーションデータを事前計算するときに、ゲームオブジェクトから開始するオフメッシュリンクを生成しようとします。詳細は、オフメッシュリンクの自動生成 のドキュメントを参照してください。 |
Reflection Probe | Type プロパティが Baked に設定されている リフレクションプローブ のためのデータを事前計算するときに、ゲームオブジェクトを加えます。詳細は、リフレクションプローブ のドキュメントを参照してください。 |