ユニバーサル Windows プラットフォーム: C# スクリプトで書いた WinRT API
スクリプトバックエンド

ユニバーサル Windows プラットフォーム: Player Settings

このページでは、Universal Windows プラットフォーム 特有の プレイヤー設定 に関して説明します。プレイヤー設定全般に関する説明は、Player Settings を参照してください。

最初に Visual Studio ソリューションを作成すると、これらの設定のほとんどは Package.appxmanifest ファイルに送られます。

注: 既存のプロジェクトの上にプロジェクトを構築した場合、Package.appxmanifest ファイルが既に存在している場合は上書きされません。つまり、Player Settings で何かを変更した場合は、必ず Package.appxmanifest を確認してください。Package.appxmanifest を再生成したい場合は、それを削除して Unity でプロジェクトを再ビルドしてください。

詳細については、アプリケーションパッケージマニフェスト に関する Microsoft のドキュメントを参照してください。

パッケージング、アプリケーション UI、タイル、スプラッシュスクリーン、機能からの設定は、Package.appxmanifest ファイルの設定に直接転送されます。

Player Settings で サポートされている方向 もマニフェスト (Visual Studio ソリューションの Package.appxmanifest ファイル) に読み込まれます。Universal Windows Apps の場合、マニフェストで指定した方向に関係なく、Player Settings で使用した方向に向きをリセットします。これは、Windows 自体がデスクトップコンピューターとタブレットコンピューターのこれらの設定を無視するためです。サポートされている向きは、Unity スクリプト API を使用して、いつでも変更できます。

Certificate (証明書)

すべての Universal Windows App には開発者を識別する証明書が必要です。独自の証明書を作成しない場合は、Unity がデフォルト証明書を作成します。

Compilation (コンパイル)

ご存知のとおり、Unity では スクリプトファイルのコンパイルに Mono が使用されており、.NET 3.5 にある API を使用できます。Compilation Overrides を利用すると、C#ファイルのユニバーサル Windows プラットフォームの .NET (.NETCore とも呼ばれています) の使用が可能になります。 API はここで入手可能です。

Compilation Overrides の各設定の説明

  • None - C# ファイルは Mono コンパイラーを使ってコンパイルされます。
  • Use .Net Core - C#ファイルは Microsoft コンパイラーと .NET Core を使用してコンパイルされます。Windows Runtime API を使用できますが、C# ファイルに実装されたクラスには JS 言語からアクセスできません。注: Windows Runtime の API を使用する場合は、ENABLE_WINMD_SUPPORT 定義でコードをラップすることをお勧めします。これは、ユニバーサル Windows プラットフォームへビルドする時にのみ API が使用可能であり、Unity エディターでは使用できないためです。
  • Use .Net Core Partially - Plugins、Standard Assets、Pro Standard Assets フォルダーにない C# ファイルは、Microsoft コンパイラーおよび .NET Core を使用してコンパイルされ、他のすべての C# ファイルは Mono コンパイラーを使用してコンパイルされます。利点は、C# で実装されたクラスが JS 言語からアクセスできることです。 注:Unity エディターで .NET Core API をテストすることはできません。なぜなら、エディターは .NET Core にアクセスできないため、ユニバーサル Windows App を実行中にのみ API をテストすることができます。

注: JS スクリプトでは .NET Core API を使用できません。

以下はスクリプトでの簡単な .NET Core API の使用例です。

string GetTemporaryFolder()
{
# if ENABLE_WINMD_SUPPORT
    return Windows.Storage.ApplicationData.Current.TemporaryFolder.Path;
# else
    return "LocalFolder";
# endif
}

Misc (その他)

Unprocessed Plugins には、Unity の事前処理ツール (SerializationWeaver、AssemblyPreprocessor、rrw など) によって無視されるプラグインのリストが含まれています。Unity がプラグインの事前処理に失敗したというエラーが表示されない限り、通常はこのリストを変更する必要はありません。

このリストにプラグインを追加しても、シリアライゼーションの目的で使用されるアセンブリに追加の IL コードは挿入されません。しかし、プラグインが UnityEngine.dll を参照していない場合は問題ありません。なぜなら、Unity はプラグインからデータをシリアライズしないからです。

Independent Input Source (独立した入力ソース)

独立した入力ソースのオプションが有効になります。詳しくはこちらをご覧ください。簡単に言うと入力の反応がより良くなりますので通常は有効にしておくと良いでしょう。

Low Latency Presentation API は Low Latency Presentation API (低遅延プレゼンテーションAPI) を有効にします。これは DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT フラグのある D3D11 スワップチェーン を生成し、入力の反応を向上させます。このオプションはデフォルトでは無効になっています。有効になっていると古い GPU ドライバーのハードウェアでゲームのラグが多くなるためです。有効にする場合は、ゲームのパフォーマンスが許容範囲にあるかどうか必ずプロファイルを行うようにしてください。

Capabilities (機能)

これらのオプションは、そのまま Package.appxmanifest にコピーされます。

注: 以前のパッケージ上にゲームを構築した場合、Package.appxmanifest は上書きされません。


• 2017–05–16 編集レビュー 無しに修正されたページ - ページのフィードバックを残す

ユニバーサル Windows プラットフォーム: C# スクリプトで書いた WinRT API
スクリプトバックエンド