Windows ストアアプリ: C# スクリプトの WinRT API
Windows ストア:Windows SDK

WSA Player Settings

このページでは、Windows ストア アプリ(WSA)に関する Player Settings について詳述します。Player Settings 全般に関する説明は プレイヤー設定を参照してください。

これらの設定のほとんどは 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 ファイルの設定に反映されます。

プレイヤー設定から サポートしている画面の向き もマニフェスト(Visual Studio ソリューションの Package.appxmanifest ファイル)へと書き込むことができます。Windows 8.1 (ストアと Phone の両方)では、この処置は実行されず、Unityは現在の向きを使ってアプリを起動します。ですので、Unityが初期化を行う前にコードによってアプリケーションの向きを変更しなければいけません。Windows 10 ユニバーサルアプリでは、マニフェストに設定された値に関係なくプレイヤー設定の値を使用して画面の向きを設定することができます。Windows 自体がデスクトップとタブレットの設定を無視してしまうためです。また、UnityのスクリプトAPIで画面の向きはいつでも変更することができます。

Certificate (証明書)

すべての Windows ストア アプリは、開発者を識別する証明書を必要とします。ご自身でこれを提供されない場合は、Unity がデフォルトの証明書を作成します。

Compilation (コンパイル)

Unity はスクリプトファイルのコンパイルに Mono を使用しており、.NET 3.5 にある API をお使いいただけます。Compilation Overrides を利用すれば Windows ストア アプリ用の .NET (.NET Core とも呼ばれます) を C# ファイル中で使用することができます。API はこちらで入手可能です。

Compilation Overrides の各設定の説明

  • None - C# ファイルは Mono コンパイラーを使ってコンパイルされます。
  • Use .Net Core - C# ファイルは Microsoft コンパイラーと .NET Core を使ってコンパイルされます。Windows Runtime API は使用できますが、C# ファイルに実装されたクラスは JS 言語からはアクセスできません。注: Windows Runtime から API を使用する場合は、コードを NETFX_CORE define でラップするのが推奨されます。なぜなら API は Windows ストアアプリ用にビルドされる場合にのみに有効であり、Unity Editor では使用できないからです。
  • Use .Net Core Partially - C# ファイルで Plugins、Standard Assets、Pro Standard Assets フォルダーに入っていないものは、Microsoft コンパイラーと .NET Core でコンパイルされます。その他のすべての C# ファイルは Mono コンパイラーでコンパイルされます。この設定の利点は、C# で実装されたクラスに JS 言語からアクセスできることです。 Unity Editor 内で .NET Core API のテストは行えません。.NET Core にアクセスができないからです。API をテストできるのは Windows ストア アプリを起動しているときのみになります。

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

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

string GetTemporaryFolder()
{
#if NETFX_CORE
    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
Windows ストア:Windows SDK