Unity の一般的なパッケージ化プロセス

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); 
}

コマンドライン制御

  1. Unityの起動
  2. Unity.exeまず、次のディレクトリで実行する必要があります。
  3. 対応するオプションを選択します

コマンド文の説明

コマンドステートメント 説明
-バッチモード 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 ずつ増加することがわかります。

おすすめ

転載: blog.csdn.net/jkkk_/article/details/130443909