Universal Windows Platform: WinRT API in C# scripts
スクリプトバックエンド

Universal Windows Platform 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 ファイルの設定に反映されます。

Supported orientations from Player Settings are also populated to the manifest (Package.appxmanifest file in Visual Studio solution). On Universal Windows Apps Unity will reset orientation to the one you used in Player Settings, regardless what you specify in the manifest. This is because Windows itself ignores those settings on desktop and tablet computers. Note, that you can always change supported orientations using Unity scripting API.

Certificate (証明書)

Every Universal Windows App needs a certificate which identifies a developer, Unity will create a default certificate, if you won’t provide your own.

Compilation (コンパイル)

As you know, Unity uses Mono when compiling script files, and you can use the API located in .NET 3.5. Compilation Overrides allows you to use .NET for Universal Windows Platform (also known as .NET Core) in your C# files, the API is available here.

Compilation Overrides の各設定の説明

  • None - C# ファイルは Mono コンパイラーを使ってコンパイルされます。
  • Use .Net Core - C# files are compiled using Microsoft compiler and .NET Core, you can use Windows Runtime API, but classes implemented in C# files aren’t accessible from the JS language. Note: when using API from Windows Runtime, it’s advisable to wrap the code with ENABLE_WINMD_SUPPORT define, because the API is only avaible when building to Universal Windows Platform, and it’s not available in Unity Editor.
  • Use .Net Core Partially - C# ファイルで Plugins、Standard Assets、Pro Standard Assets フォルダーに入っていないものは、Microsoft コンパイラーと .NET Core でコンパイルされます。その他のすべての C# ファイルは Mono コンパイラーでコンパイルされます。この設定の利点は、C# で実装されたクラスに JS 言語からアクセスできることです。 Note: You won’t be able to test .NET Core API in Unity Editor, because it doesn’t have access to .NET Core, so you’ll be able to test the API only when running Universal Windows App.

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


Universal Windows Platform: WinRT API in C# scripts
スクリプトバックエンド