Unity の一般的なパッケージ化プロセス
通常、パッケージ化プロセスは主にBuilding setting
、パッケージ化するシーンを選択し、指定したフォルダーの場所にパッケージをエクスポートします。また[MenuItem("MyMenu/Do Something")]
、静的関数を使用してパッケージ化パスとパッケージ化方法を選択することもできます。スクリプトはEditor
フォルダー
[MenuItem("Test/BuildAndroid")]
public static void BuildAndroid() {
string path = Path.GetFullPath("D:\\Packages") + "/Backbag" + ".apk";
BuildPipeline.BuildPlayer(GetBuildScence(), path, BuildTarget.Android, BuildOptions.None);
}
コマンドライン制御
- Unityの起動
Unity.exe
まず、次のディレクトリで実行する必要があります。- 対応するオプションを選択します
コマンド文の説明
コマンドステートメント | 説明 |
---|---|
-バッチモード | Unity をバッチ モードで実行します。バッチ モードでは、Unity は人間の介入なしでコマンド ライン引数を実行します。また、一部のポップアップ ウィンドウ ([シーンの保存] ウィンドウなど) も抑制されますが、Unity エディター自体は通常どおり開きます。コマンドライン引数を使用する場合は、オートメーションを中断せずに実行できるため、常に Unity をバッチ モードで実行する必要があります。 |
-やめる | 他のコマンドの実行が完了すると、Unity エディターが終了します。ただし、エラー メッセージが非表示になります (Editor.log ファイルに表示されます)。 |
-executeMethod <クラス名.メソッド名> | 静的メソッドは、Unity がプロジェクトを開いた直後、およびオプションのアセット サーバーの更新が完了した後に実行されます。メソッドが実行されるスクリプトはエディター ファイル内に存在し、静的である必要があります。コマンド ライン プロセスからエラーを返すには、例外をスローして Unity をコード 1 で終了するか、EditorApplication.Exit を呼び出してゼロ以外のコードを返します。 |
さらに、一部のパラメータは Unity Standalone Player プラットフォームでも実行できます (公式ドキュメントでは Mac、Windows、Linux を参照しています)。
コマンドラインからバッチモードで開始するには、次のように入力します。PATH_TO_STANDALONE_BUILD -projectPath PROJECT_PATH -batchMode
例えばC:\projects\myproject\builds\myproject.exe
-batchMode
コマンドステートメント | 説明 |
---|---|
-バッチモード | 「ヘッドレス」モードでゲームを実行します。ゲームは何も表示しないか、ユーザー入力を受け入れません。主にオンラインゲームに使用されるサーバー |
-単一インスタンス (Linux および Windows のみ) | 一度に実行できるゲーム インスタンスは 1 つだけです。別のインスタンスがすでに実行されている場合は、-single-instance を使用して再度起動すると、既存のインスタンスに合わせて調整されます。 |
-力-(…) | 指定されたレンダリング メソッド (DirectX、Metal、OpenGL など) の使用が必須 |
-画面-(…) | 画面のサイズまたは表示方法(ポップアップウィンドウまたはフルスクリーン)を再指定します。 |
プレーヤー設定—PC
プレーヤー設定には、最終的なゲーム パッケージを完成させるために役立つさまざまなオプションが用意されています。多くの異なるプラットフォームがありますが、一般的な設定は次の部分に分かれています
アイコン
アイコン、デスクトップに表示されるデフォルトのアイコン
解像度とプレゼンテーション
解像度と起動前ウィンドウの設定。サポートされている解像度比やデフォルトで全画面で起動するかどうかなどのオプションが含まれます。
解決
- フルスクリーン モード: デフォルトのウィンドウ モードを選択します。
- デフォルトはネイティブ解像度: ゲームはデフォルトの解像度で開始され、チェックを外した後にゲームの解像度を強制できます。ただし、ゲームがすでにパッケージ化されて開始されている場合、Windows はアプリケーションの最終解像度をレジストリに記録するため、次回パッケージ化して解像度を強制しても意味がありません。この時点での解決策は 3 つあります。
- 1. アプリケーションの名前または会社を変更します。
- 2. コード内で解像度を直接制御します。
- 3. Unity の組み込みの開始前解像度を使用して、小さなウィンドウを設定します。
- Mac Retina サポート: 高 DPI の Mac 画面でゲームをより鮮明に表示できますが、より多くのリソースを消費する可能性があります。
- バックグラウンドで実行: ゲームがフォーカスを失っても、一時停止せずに実行を継続します。ネットワーク化されたゲームはチェックする必要があります。
スタンドアロン プレーヤーのオプション
このセクションでは、ユーザーが画面をカスタマイズする方法を指定できます。たとえば、ユーザーが画面のサイズを変更できるかどうか、および同時に実行できるインスタンスの数をここで決定できます。
- シングル スクリーンのキャプチャ: このオプションを有効にすると、フル スクリーン モードのスタンドアロン ゲームがマルチ モニター セットアップのセカンダリ モニターを暗くしなくなります。
- プレーヤー ログを使用する: すべての Debug.Log 情報をログ ファイルに入力します。デフォルトでチェックされています。
- サイズ変更可能なウィンドウ: プレーヤーがゲーム ウィンドウのサイズを変更できるようにします。
- バックグラウンドで表示:バックグラウンドでも正常に表示できます。
- Force Single Instance : ホストは 1 つのインスタンスでのみ実行できます
- サポートされているアスペクト比: サポートされているアスペクト比
スプラッシュ画像
スプラッシュ イメージ、設定によりスタンドアロン プラットフォームのスプラッシュ イメージを指定できます
その他の設定
レンダリング
- **色空間: **色空間、非常に重要なオプションです。携帯電話ではガンマのみが選択できます。一般的な 3A 傑作はリニアであり、リニア表示効果はより現実的です。
- Windows/Mac/Linux 用自動グラフィックス API: 最適なグラフィックス API を自動的に選択します。チェックされていない場合は、サポートされているグラフィックス API を自分で追加できます。
- 静的バッチ処理: 静的バッチ処理。- 静的 (動かない) ゲーム オブジェクトを大きなメッシュに結合し、より高速な方法でレンダリングします。
- 動的バッチ処理: 動的バッチ処理、自動化された Unity プロセス、グラフィックス パフォーマンスを最適化するために一度に複数のネットワークをバッチ レンダリングするこのテクノロジーは、CPU 上のすべてのゲームオブジェクトの頂点を変換し、多くの同様の頂点を結合します。(プログラム可能なレンダリング パイプラインがアクティブな場合、動的バッチ処理は効果がありません)
- GPU スキニング / コンピューティング スキニング : GPU を使用してボーンとスキンの接続プロセスを処理し、CPU リソースを解放します。
- グラフィックス ジョブ: ゲームが一部のレンダリング タスクを他の CPU コアに引き渡して処理できるようにし、ゲームの処理効率を向上させます。
- Frame Timing Stats: フレーム タイミング ステータス。CPU および GPU のフレーム時間統計を収集するには、このプロパティを有効にします。これを動的解像度カメラ設定とともに使用して、アプリケーションが CPU バウンドであるか GPU バウンドであるかを判断します。
構成
- Scripting Backend : プロジェクト内の C# コードをコンパイルして実行する方法を選択します。Unity は、ターゲット プラットフォームに応じて、Mono、.NET、IL2CPP の 3 つの異なるスクリプト バックエンドをサポートします。ユニバーサル Windows プラットフォームは、.NET と IL2CPP の 2 つだけをサポートします。
- Mono : C# コードを .NET 共通中間言語 (CIL) にコンパイルし、共通言語ランタイムを使用してその CIL を実行します。
- IL2CPP : C# コードを CIL にコンパイルし、CIL を C++ に変換してから、実行時に直接実行できるように C++ をネイティブ コードにコンパイルします。
- API 互換性レベル: プロジェクトで使用される .NET API を選択します。この設定は、サードパーティのライブラリの互換性に影響します。
- インクリメンタル GC を使用する: インクリメンタル ガベージ コレクターを使用します。これは、ガベージ コレクションを複数のフレームに分散して、GC 関連のフレーム期間のスパイクを削減します。
スクリプトのコンパイル
- 「安全でない」コードを許可する: 事前定義されたアセンブリ (Assembly-CSharp.dll など) での「安全でない」 C# コードのコンパイルのサポートを有効にします。
- Use Deterministic Compilation : -deterministic C# フラグを使用したコンパイルを防止するには、この設定を無効にします。この設定を有効にすると、コンパイルされたアセンブリはコンパイルされるたびにバイトごとに同一になります。
コードを静的に分析し、コード内の潜在的なバグ、脆弱性、最適化の機会を検出できる Roslyn Analyzers に関連するいくつかのオプション
スクリプトによるシンボルの定義
スクリプトのコンパイル時のフラグ設定は、定義に従ってコンパイル段階で一部のコードを含めたり除外したりできます。
#if UNITY_STANDALONE_WIN
Debug.Log("Standalone Windows");
#endif
プラットフォーム スクリプト シンボル: (プラットフォーム ID)
意味 | 意味 |
---|---|
UNITY_EDITOR | ゲームスクリプトからエディターの下のシンボルを呼び出すために使用されます |
UNITY_EDITOR_XXX | XXX プラットフォーム上のエディターでコードをコンパイル/実行する |
UNITY_STANDALONE | スタンドアロン プラットフォーム (Mac OS X、Windows、または Linux) 上のアプリケーションでコードがコンパイル/実行される |
UNITY_STANDALONE_XXX | XXX プラットフォーム上のアプリでコードがコンパイル/実行される |
UNITY_XXX | XXX プラットフォームでコンパイル/実行されたコード (スタンドアロンを除く) |
エディタのバージョン スクリプト シンボル: (エンジン バージョンの識別)
Unity のバージョン番号を選択できます。これは、X_Y_Z の任意のバージョンに固有のものにすることができます。
UNITY_2019 | Unity2019 バージョン (2019.YZ などのすべてのバージョンを含む) |
---|---|
UNITY_2019_4 | Unity2019.4 バージョン (2019.4.Z などのすべてのバージョンを含む) |
UNITY_2019_4_14 | Unity2019.4.14バージョン |
残りのロゴ:
意味 | 意味 |
---|---|
CSHARP_7_3_OR_NEWER | C# 7.3以降をサポート |
ENABLE_MONO | コンパイル方法はMonoです。 |
ENABLE_IL2CPP | S コンパイル方式はIL2CPPです。 |
NET_X_Y | Mono および IL2CPP 上の Net 対応バージョンの API 互換性のためのスクリプトを生成します。 |
ユニティサーバー | ビルド設定のサーバービルドオプションを確認してください |
最適化
- Prebake Collision Meshes : ゲームを構築するときにのみコリジョン ボックスを追加します。
- ロードされたシェーダーを維持する: シェーダーがアンインストールされないようにします。
- プリローダー アセット: 事前に読み取られたアセットのリスト。
- マネージド ストリッピング レベル: Unity が未使用のマネージド コードを削除する程度を決定します。これにより、結果の実行可能ファイルは小さくなりますが、実際に使用するコードが誤って削除される可能性があります。
- 頂点圧縮: 頂点圧縮。モデルが圧縮するデータを選択します。たとえば、すべてを選択して、位置とライトマップ UV を削除できます。もちろん、各モデルをインポートすると、このパラメータは個別に設定でき、このオプションは上書きされます。
- メッシュ データの最適化: メッシュ データの最適化: このオプションをチェックすると、接線、法線、カラー、UV など、マテリアルに必要のないメッシュ データが削除されます。
ロギング
スクリプトを実行するタイミング (ScriptOnly)、いつでも実行する (Full)、または実行しない (None) を選択できます。
プレーヤー設定—Android
ほとんどの比較は同様ですが、重要な違いのみを紹介します
解像度とプレゼンテーション
オリエンテーション
方向: デバイス上のアプリケーションの方向に関連する設定をカスタマイズします。
設定 | 説明 |
---|---|
肖像画 | 縦向き、下端をデバイスの上端に揃える |
逆さまのポートレート | 縦向き、下端をデバイスの下端に揃える |
横向き右 | 横向き、デバイスの上部に左揃え |
風景左 | 横向き、デバイスの上部に右揃え |
自動回転 | 画面は、「自動回転に許可される向き」セクションで指定した任意の向きに回転できます。 |
その他の設定
身元
財産 | 関数 |
---|---|
デフォルトのパッケージ名を上書きする | アプリケーションのデフォルトのパッケージ名を置き換えるかどうかを示します - macOS、IOS、Android にも影響します |
パッケージ名 | アプリケーション ID を設定します。これは、デバイス上および Google Play ストアでアプリケーションを一意に識別します。アプリケーション ID は、com.YourCompanyName.YourProductName という規則に従う必要があり、英数字とアンダースコア文字のみを含める必要があります。各セグメントはアルファベットで始まる必要があります。 |
バージョン | バンドルのビルド バージョン番号を入力します。これはバンドルの反復 (リリースまたは未リリース) バージョンを識別し、ドットで区切られた数字を含む文字列の共通形式で指定されます (例: 4.3.2) (iOS と Android で共有) ) |
バンドルのバージョンコード | 内部バージョン番号は、どのバージョンが新しいかを比較するためにのみ使用され (数値が大きいほど最新であることを意味します)、ユーザーには表示されません。xy が整数に変換されるか、リリースごとに単純に 1 ずつ増加することがわかります。 |