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

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

This page details the Player Settings specific to Universal Windows Platform. A description of the general Player Settings can be found here.

これらの設定のほとんどは Visual Studio ソリューションの初作成時に Package.appxmanifest へ送られます。

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

App package manifest についての詳細は、次のリンクをご参照ください。http://msdn.microsoft.com/en-us/library/windows/apps/br211474.aspx

Packaging、Application UI、Tile、Splash screen、Capabilities の設定は、そのまま 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 がプラグインの前処理に失敗したというエラーが出ている場合は修正が必要です。

このリストにプラグインを追加した場合:

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 は上書きされません。


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