Version: Unity 6.0 (6000.0)
言語 : 日本語
Dedicated Server の要件
専用サーバーの最適化

Dedicated Server の Player 設定

Dedicated Server の Player 設定は、Desktop のターゲットPlayer 設定のサブセットです。一般的な Player 設定については、Player 設定 を参照してください。

Dedicated Server の Player 設定
Dedicated Server の Player 設定

Dedicated Server のヘッドレスおよびサーバーアプリケーションの性質により、適用できるのは Other Settings セクションのオプションのみです。同じ内容のドキュメントは、Other Settings セクションにあります。

以下のオプションは適用されません。

  • Icon
  • Resolution and Presentation
  • Splash Image
  • Publishing Settings

Other Settings

Other Settings のセクションでは、以下のグループに分類されたさまざまなオプションをカスタマイズできます。

設定方法

プロパティ 説明
Scripting Backend : 使用するスクリプティングバックエンドを選択します。スクリプティングバックエンドは、プロジェクトの C# コードを Unity がコンパイルし実行する方法を決定します。
Mono :C# コードを .NET Common Intermediate Language (CIL) にコンパイルし、その CIL を Common Language Runtime を使用して実行します。詳細については、Mono を参照してください。
IL2CPP : C# コードを CIL にコンパイルし、CIL を C++ に変換して、次に、その C++ をネイティブのマシンコードにコンパイルします。これは、ランタイムに直接実行されます。詳細については、IL2CPP を参照してください。
API Compatibility Level プロジェクトに使用する .NET API を選択します。この設定はサードパーティ製のライブラリとの互換性に影響します。ただし、エディター固有のコード (エディターディレクトリまたはエディター固有の Assembly Definition 内のコード) には影響しません。

ヒント: サードパーティ製のアセンブリで問題が発生した場合は、下の API Compatibility Level セクションを参照してください。
.Net Framework .NET Framework 4 (.NET Standard 2.0 プロファイルのすべてと追加 API を含む) と互換性があります。.NET Standard 2.0 に含まれていない API にアクセスするライブラリを使用する場合は、このオプションを選択します。より大きいビルドを作成し、使用可能な追加の API を作成することがすべてのプラットフォームで必ずしもサポートされるわけではありません。詳細については、追加のクラスライブラリアセンブリの参照 を参照してください。
.Net Standard 2.1 ビルドのサイズが小さくなり、完全なクロスプラットフォームをサポートします。
エディターアセンブリ互換性レベル エディターアセンブリで使用する .NET API を選択します。
.NET Framework .NET Framework 4 (.NET Standard 2.1 プロファイルのすべてと追加 API を含む) と互換性があります。.NET Standard 2.1 に含まれていない API にアクセスするライブラリを使用する場合は、このオプションを選択します。より大きいビルドを作成し、使用可能な追加の API を作成することがすべてのプラットフォームで必ずしもサポートされるわけではありません。詳細については、追加のクラスライブラリアセンブリの参照 を参照してください。
.NET Standard .NET Standard 2.1 と互換性があります。ビルドのサイズが小さくなり、完全なクロスプラットフォームをサポートします。
IL2CPP Code Generation Unity が IL2CPP コード生成を管理する方法を定義します。このオプションは、IL2CPP スクリプティングバックエンドを使用している場合にのみ選択できます。
Faster runtime ランタイムパフォーマンスに最適化されたコードを生成します。この設定は、デフォルトでアクティベートされています。
Faster (smaller) builds ビルドサイズとイテレーションに最適化されたコードを生成します。この設定では生成されるコードが減りビルドが小さくなりますが、特にジェネリックコードのランタイムパフォーマンスが低下する可能性があります。このオプションは、変更を繰り返すときなど、ビルド時間の短縮が重要な場合に使用します。
C++ Compiler Configuration IL2CPP 生成コードをコンパイルするときに使用する C++ コンパイラーの設定を選択します。
Debug デバッグ設定はすべての最適化をオフにするため、コードのビルドは速くなりますが、実行は遅くなります。
Release リリース設定によって最適化が有効になるため、コンパイルされたコードの実行が速くなり、バイナリサイズは小さくなりますが、コンパイルに時間がかかります。
Master マスター設定により、用意されているすべての最適化が可能になり、対象となるすべてのビットのパフォーマンスが制限されます。例えば、MSVC++ コンパイラーを使用するプラットフォームでは、このオプションを使用すると、リンク時のコードの生成が可能になります。この設定を使用したコードのコンパイルには、リリース設定を使用した場合よりも、大幅に時間がかかる場合があります。Unity では、ビルド時間の増加が許容できる場合は、ゲームの出荷バージョンをマスター設定を使用してビルドすることをお勧めしています。
IL2CPP Stacktrace Information スタックトレースに追加する情報を選択します。情報タイプの詳細は、IL2CPP によるマネージスタックトレース を参照してください。
メソッド名 スタックトレースに各マネージメソッドを加えます。
Method Name, File Name, and Line Number スタックトレースにファイルと行番号の情報を持つ各マネージメソッドを加えます。注意このオプションを使用すると、ビルド時間とビルドされたプログラムの最終的なサイズの両方が増加する可能性があります。
Use incremental GC インクリメンタルガベージコレクターを使用します。これにより、ガベージコレクションをいくつかのフレームに広げ、フレーム継続時間中にガベージコレクションに関連するスパイクを軽減します。詳しくは、自動メモリ管理 を参照してください。
Allow downloads over HTTP HTTP 経由でのコンテンツのダウンロード許可を設定します。より安全な HTTPS プロトコルが推奨されているため、デフォルトではこのオプションは Not allowed になっています。
Not Allowed HTTP 経由でのコンテンツのダウンロードを許可しません。
Allowed in Development Builds 開発ビルドでのみ HTTP 経由のダウンロードを許可します。
Always Allowed 開発ビルドとリリースビルドで HTTP 経由のダウンロードを許可します。
Target minimum macOS version サポートされている macOS の最小バージョン 10.13.0 を指定します。

API Compatibility Level

すべてのターゲットに対する Mono の API 互換性レベルを選択できます。サードパーティの .NET ライブラリで、.NET 互換性レベルに該当しない機能が使用される場合があります。そのような場合に、状況を把握し、最適な修正方法を見つけるには、以下のお勧めの手順を試してください。

  1. ILSpy for Windows をインストールします。
  2. API 互換性レベルに問題がある .NET アセンブリを ILSpy にドラッグします。これらは Frameworks/Mono/lib/mono/YOURSUBSET/ の下にあります。
  3. サードパーティのアセンブリをドラッグします。
  4. サードパーティのアセンブリを右クリックし、Analyze を選択します。
  5. 分析レポートで Depends on セクションを調べます。サードパーティのアセンブリが依存していても、選択した .NET 互換性レベルで使用できないものは、赤字でハイライトされます。

Shader Settings

プロパティ 説明
Shader Precision Model シェーダーが使用するデフォルトの精度を選択します。詳細については、シェーダーでの 16 ビット精度の使用を参照してください。
Platform default モバイルプラットフォームでは精度を低くし、他のプラットフォームでは最高精度にします。
Unified プラットフォームでサポートされている場合は、低い精度を使用します。
Strict shader variant matching シェーダーバリアントが見つからない場合は、エラーシェーダーを使用し、コンソールにエラーを表示します。
Keep Loaded Shaders Alive ロードされたすべてのシェーダーを存続させ、アンロードされないようにします。

Shader Variant Loading Settings

これらの設定を使用して、ランタイムにシェーダーが使用するメモリ量を制御します。

プロパティ 説明
Default chunk size (MB) すべてのプラットフォームのビルドされたアプリケーション内に Unity が保存する、圧縮されたシェーダーバリアントのデータチャンクの最大サイズを設定します。デフォルト値は 16 です。詳細は、シェーダーのロード を参照してください。
Default chunk count Unity がすべてのプラットフォームのメモリに保持する解凍チャンク数のデフォルト制限を設定します。デフォルトは 0、つまり制限はありません。
Override このビルドターゲットの Default chunk sizeDefault chunk count のオーバーライドを有効にします。
Chunk size (MB) このビルドターゲットの Default chunk size (MB) の値をオーバーライドします。
Chunk count このビルドターゲットの Default chunk count の値をオーバーライドします。

スクリプトのコンパイル

プロパティ 説明
Scripting Define Symbols カスタムコンパイルフラグを設定します。

詳細については、プラットフォーム依存のコンパイルを参照してください。
Additional Compiler Arguments このリストにエントリーを追加し、Roslyn コンパイラーに追加の引数を渡します。引数を追加するごとに 1 つの新しいエントリーを使用します。
新しいエントリーを作成するには、Add (+) をクリックします。エントリーを削除するには、Remove (-) をクリックします。

必要な引数をすべて追加して、Apply をクリックすると、その後のコンパイルに追加の引数が含まれるようになります。Revert をクリックすると、このリストが最近適用された状態にリセットされます。
Suppress Common Warnings C# の警告 CS0169CS0649 を表示するかどうかを指定します。
Allow ‘unsafe’ Code 事前定義されたアセンブリ (例えば Assembly-CSharp.dll) での ‘unsafe’ C# コード のコンパイルのサポートをアクティベートします。
アセンブリ定義ファイル (.asmdef) の場合は、.asmdef ファイルの 1 つをクリックして、表示される Inspector ウィンドウでオプションをアクティベートします。
Use Deterministic Compilation deterministic C# フラグを使用して、コンパイルを阻止するかどうかを指定します。この設定を有効にすると、コンパイルされるアセンブリは、コンパイルされるたびにバイト単位で同じになります。

詳細は、Microsoft の deterministic コンパイラーオプション を参照してください。

Optimization

プロパティ 説明
Enable Dedicated Server optimizations Dedicated Server のビルドで追加の最適化を実行するには、このオプションを有効にします。
Prebake Collision Meshes ビルド時に Meshes に衝突データを追加します。
Preloaded Assets: 起動時にプレイヤーが読み込むためのアセットの配列を設定します。
新しいアセットを追加するには、Size プロパティの値を引き上げ、表示される新しい Element ボックスに読み込むようにアセットへの参照を設定します。
Vertex Compression チャンネルごとに頂点圧縮を設定します。これはプロジェクト内のすべてのメッシュに影響します。
通常、頂点圧縮は、メモリ内のメッシュデータのサイズを縮小し、ファイルサイズを削減し、GPU パフォーマンスを向上するために使用します。

頂点圧縮の設定方法とこの設定の制限については、メッシュデータの圧縮 を参照してください。
Optimize Mesh Data : このオプションを有効にすると、ビルドで使用されるメッシュから未使用の頂点属性が削除されます。このオプションは、メッシュ内のデータ量を削減し、ビルドサイズ、ロード時間、ランタイムのメモリ使用量の削減を支援します。

警告: この設定を有効にしている場合は、ランタイムにマテリアルやシェーダーの設定を変更しないようにしてください。

詳細については、PlayerSettings.stripUnusedMeshComponents を参照してください。
Texture MipMap Stripping: すべてのプラットフォームでミップマップのストリッピングを有効にします。これにより、ビルド時にテクスチャから未使用のミップマップが削除されます。Unity は、ミップマップの値を現在のプラットフォームの Quality Settings と比較して、未使用のミップマップを判別します。ミップマップの値が現在のプラットフォームのすべての Quality Setting の範囲外にある場合は、ビルド時にそれらのミップマップをビルドから削除します。QualitySettings.masterTextureLimit が削除されたミップマップ値に設定されている場合、Unity は削除されていない最も近いミップマップ値に値を設定します。

Stack Trace

各ログタイプに対応するオプションを有効にして、目的のログタイプを選択します。

プロパティ 説明
なし ログは記録されません。
ScriptOnly スクリプトの実行時にのみログを記録します。
full 常にログを記録します。

詳細については、スタックトレースのロギングを参照してください。

Legacy

Clamp BlendShapes (Deprecated) オプションを有効にすると、SkinnedMeshRenderers でブレンドシェイプのウェイトの範囲を固定できます。

Capture Logs

Capture Startup Logs オプションを有効にして、後で処理できるように起動ログをキャプチャします。

追加リソース

Dedicated Server の要件
専用サーバーの最適化