Unityの検索機能

モバイル端末のさらなる進化を目指します

WindowsストアでWindows 10の勢いを活用して新規市場のチャンスを獲得しよう。

移植ガイド

はじめに

複数のプラットフォームやデバイスタイプにアクセスするためのシングルコードベースが特に活用されており、Unityで作成したゲームをビルドする方法がますます人気を集めています。ユニバーサルWindowsプラットフォーム(UWP)で動作するWindows10向けゲームのビルドも同様に人気です。本ホワイトペーパーでは、UWP向けにゲームをビルドするためのUnityのすでに精通している使い方を学べるでしょう。トピックは以下のとおりです。

  • UWP向けに作成したゲームをコンパイルする
  • Windows 環境ベストプラクティスを理解する
  • プラットフォーム特定の機能を実装する
  • 主要なプラグインを理解する
  • Windowsストアに公開する

Unity によるユニバーサル Windows プラットフォーム(UWP)向けゲーム開発について詳しく解説するために、UnityのゲームをUWPにエクスポートし、Windowsストアへデプロイする作業に関連するさまざまな面と考慮点を通じ開発過程のいろいろな時点で見直しを行うために実際のゲームを使います。

注意: 本ガイドでは、あなたがすでにUnity3D Basicの使用法に精通していると想定しています。Unityのチュートリアルを活用することで、いつでもUnity3Dの使用方法についての詳細を知ることができます。 Unity チュートリアル

UnityプロジェクトをUWPに書き出すための要件

Unityゲームを開発、コンパイル、Windowsストアに提出するために必要なことは以下のとおりです。

  • Unity 5.3.5. Unityの無料バージョンかUnity Proのいずれかで作業します。Windowsストアに公開するためのアドオンは、Unity BasicとUnity Proを利用しているいずれのユーザーに対しても無料です。
  • Visual Studio. 無料のVisual Studio Expressを含め、あらゆるVisual Studio SKUを使うことができます。ユニバーサルWindowsプラットフォームを対象とするため、 Visual Studio 2015 Update 1が必要になります。
  • Windows 10 Windows 10のライセンスをお持ちでない場合、90日間の評価版を入手することが可能です。Mac OS Xを実行している、もしくはAppleのハードウェアをインストールする場合は、Boot Camp、VMWareまたはParallelsを使用してインストールするための異なるオプションを確認します。
  • Microsoftのアカウント 開発者ライセンスを取得するためには、無料のMicrosoft アカウントが必要です。
  • Windowsストア開発者アカウント これはWindowsストアにゲームを提出する際に必要になります。この段階で登録を行い、ストアにアプリやゲームを申請できる会社/個人として認証されます。登録情報は、Windows Phone (1回の登録で両方のストアにアプリを申請することが可)で共有されます。無料のDev Centerのアカウントは、Microsoftがサポートするプログラム (例:学生/スタートアップ企業向け)を通じて利用できる場合がありますが、オンライン登録用に個人向け登録料が若干かかることがあります。
  • Windows 10でアプリが動作するテスト用デバイス。シミュレーターはマルチタッチや異なるディスプレイ解像度をシミュレートできるが、モバイル/タッチパネル操作体験を作る場合は本物のARM端末デバイス上でタッチ機能によるテストを行うことをお勧めします。

本ドキュメントは、Unity 5.3.5、Visual Studio 2015の最終バージョンとなるUpdate 2とWindows 10 Version 1511で作成されました。旧バージョンは異なるアプリケーションのプログラミングインターフェイスとエラーの原因となる可能性がある非互換性の問題を有する場合があるので、少なくともUnity 5.3.2とVisual Studio Update 1を使用することをお勧めします。

Windows ストア

Windows Storeでは、UWPアプリを申請およびアップロードできる1つの場所があります。旧オペレーティングシステムを使用してもデバイスを対象にすることができますが、本ドキュメントでは、WindowsストアにUWPのアプリとしてゲームを申請することに焦点を絞って説明します。

Nuget

NuGetは、.NETプロジェクトを含めたMicrosoftの開発プラットフォーム向けパッケージマネージャーです。これは、デベロッパーがサードパーティ製のライブラリを見つけ、依存関係としてプロジェクトにそれらのライブラリを追加することが出来るようにします。Windowsネイティブのライブラリを使う必要があるときNuGetを使うことができます。NuGetは、Unityのスクリプトから呼ばれるDLLの管理にも使用できます。

さらに、NuGetは、UWPにUnityゲームを移植するにも必要です。UnityからVisual StudioのUWPアプリにプロジェクトをエクスポートする場合、ターゲットにする.NETコアに必要なすべてのライブラリをインストールするためにNuGetに依存します。

Windowsストアアプリのデプロイ方法

本セクションでは、既存のUnityゲームに必要なこと及びユニバーサルWindowsプラットフォーム(UWP)ゲームとしてWindowsストアにデプロイする方法に必要なことを説明していきます。以下をご覧ください。

  • Windows 10で開発者モードを有効にする
  • Unityでゲームの詳細を入力する
  • Windows 10でユニバーサルWindowsプラットフォーム(UWP)にエクスポートする
  • Window 10 SDKの「Visual Studio 2015 Update 2」におけるソリューションのビルド
  • Windowsストアで作成したゲームを関連付ける
  • Unityでまだ実行していない場合は、必要なイメージ/コンテンツ(例:ロゴ、アイコン、スプラッシュ)を追加する
  • Windowsアプリ認定キット(WACK)のテストを行う
  • Windowsストアに公開する

Windows 10で開発者モードを有効にする

ゲームを開発する、インストールを行う、もしくはアプリのテストを行うために使用したい各デバイス向け開発者ライセンスは不要になりました。代わって、デバイスの設定からこれらの作業をするために1回だけデバイスを有効化することができます。

Windows 10のデバイスを有効にする

Windows10について、デスクトップ、タブレット、Windows Phoneのいずれを使用してもSystem Settings(システム設定)下で開発用のデバイスを有効にする必要があります。

そのためには、「System Settings」に移動し、選択します。 「Update & security」 の次に 「For developers」を選びます。 この画面から「Developer mode」を選び 有効にします。

このリンクをクリックすると、手順について詳しい説明 をご覧いただけます。

Unityでゲームの詳細を入力する

Unity向けゲームを準備する最初の手順は、設定されたビルド設定が正しく行われているかを確認することです。

ユニバーサルWindowsプラットフォーム (UWP)向けに、Unity製ゲームをビルドするには以下が必要になります。

  • Unity 5.3.5
  • Windows 10
  • 「Visual Studio 2015 Update 2」
  • Windows 10 SDK

Unityで設定を行うには、最初に 「File」をクリックします。 次に 「Build Settings」で設定します。

次に 「Player Settings」… ボタンを押します。

Player Settings」ウィンドウ内で、 ゲームの詳細が入力できます。

選択をしたら、Windowsストアに表示される Player Settings」ウィンドウ内で、 ウィンドウ内にロゴと画像一覧を加えることができます。WindowsストアにUnity製アプリをビルドすることにおける多くのものと同じように複数の方法があります。また、Unity IDEで追加画像の表示速度を遅らせることもできるし、Visual Studioを通じて後で画像を表示することもできます。

ビルド設定では、UWPにエクスポートすることができるようにUnity3Dで適切に構成されています。

ユニバーサルWindowsプラットフォームにエクスポートする

本セクションでは、ユニバーサルWindowsプラットフォーム(UWP)アプリ向けの既存のUnityサポートとUWP向けにUnityからエクスポートする方法を見直します。

Unity3Dは、Unity 5.2以降UWPアプリ向けにサポートを行ってきました。以下に示すように「Build Settings」ウィンドウで、Windowsストアから「Universal 10 SDK」を選択することでUWPにエクスポートすることができます。

Unity 5.3.5 は、「Visual Studio 2015」のソリューションファイルをエクスポートすると、Windows10のデバイス上でビルドと動作が可能になります。

通常、UWP ゲームでは、それぞれx86、x64とARMのCPUアーキテクチャに対応する 3 つのアプリ パッケージを含めることができます。加えて、 ゲームプロジェクトでは.NET Core 5.0を使用できます。

「Build Settings」ウィンドウで「Build」ボタンをクリックすると、ゲームの構築用フォルダーを選択するのに「 Build Windows Store」ダイアログウィンドウが即座に表示されます。

フォルダを選択したら、ターゲットプラットホームを選択し、Unityがゲームのビルドを開始します。大型ゲームの場合、処理が完了するまで数分かかります。

Windowsエクスプローラーのウィンドウは、Unityで生成されたファイルがすべて含まれているフォルダが表示されます。

このプロセスの詳細については、Unity3Dの Windows版ドキュメントをご参照ください。

Window 10 SDKのVisual Studio 2015 Update 2でのソリューションのビルド

ユニバーサル Windows (UWP)アプリを販売したり、他のユーザーに配布したりするには、 appxupload パッケージを作成する必要があります。このパッケージは、Windowsストアで作成したアプリを販売したり、他のユーザーに配布しやすくします。 appxuploadパッケージを 作成すると、別のappxパッケージがテストおよび サイドロード用に生成されます。 appx パッケージをデバイスにサイドロードすることによって、アプリを直接配布することもできます。

Windows 10の場合、Windows ストアにアップロードできるパッケージを 1 つ (.appxupload) 作成します。 そうすると、アプリは任意のWindows 10デバイスにインストールして実行できるようになります。

注意: Windows 8.1 アプリ向けappパッケージを作成する必要がある場合、 以下の手順に従ってください。

Visual Studioでゲームをコンパイルする準備が整いました。

はじめに、プラットフォームにx86かx64のいずれかを選択します。

メニューの Build -> Build Solutionの順に選択します。

NuGetパッケージマネージャーを使用するとパッケージを復元することができます。

「Run」を クリックして、 「Local Machine」が選択されていることを 確認します。

ビルドに成功したか確認します。

このテストが終了したら、Windowsストアでアプリを販売する準備が整ったことになります。内部ユーザー限定のため販売する予定がない基幹業務 (LOB) アプリの場合、このアプリをサイドロードして任意のWindows 10デバイスにインストールすることができます。

詳細については、右のリンクからご確認いただけます。 Windows10のユニバーサルWindowsアプリをパッケージ化する

作成したアプリをWindowsストアと関連付ける

メニューの プロジェクトストアメニューで Store -> Associate App with the Store...の順に選択します。.

これを行うと、マニフェスト デザイナーの 「パッケージ化」タブのいくつかのフィールドが自動的に更新されます。アプリを ストアと関連付けると、次の値がローカルコンピューターの現在のプロジェクト用のアプリマニフェストファイルにダウンロードされます。

  • パッケージ表示名
  • パッケージ名
  • パブリッシャーID
  • 発行者表示名
  • バージョン

マニフェストのカスタム .xml ファイルを作成し、 規定のpackage.appxmanifest ファイルを上書きした場合は、 ストアにアプリを関連付けることは できません。 カスタム マニフェスト ファイルをストアに関連付けようとすると、エラー メッセージが表示されます。カスタムのパッケージマニフェストを作成することはお勧めしません。

詳細については、右のリンクからご確認いただけます。 「Packaging Universal Windows apps for Windows 10」をご参照ください。

ストアにアプリを申請する

名前を登録して アプリを作成したら、 そのアプリを公開するための作業を開始できます。 まず、 「申請書」を作成します。

通常、アプリが完成し公開する準備が整ったら申請できます。ただし、1 行のコードを記述する前でも情報の入力を開始することができます。準備が整ったらいつでも作業に取り組むことができるように、申請するアプリはあなたのダッシュボードに保存されます。

アプリが公開された後は、ダッシュボードで別の申請を作成して更新バージョンを公開できます。新しい申請を作成すると、新しいパッケージをアップロードするときでも、価格やカテゴリなどの情報を変更するだけのときでも、必要な変更を加えて公開することができます。

アプリの新しい申請を作成するには、 アプリの概要ページに 表示されている前回の申請の横にある 「Update」をクリックします。

アプリの申請用チェックリスト

Unityはアプリの申請に必要な最小限のアセットを提供しますが、あなた独自の画像アセットをご用意していただくことをお勧めします。ここで表示しているのは、 「Package.appx manifest」 ファイルのVisual Assetsセクションのスクリーンファイル Package.appxmanifest です。

開発の過程で提供される全てのアセットを確認できます。

詳細については、右のリンクからご確認いただけます。 認定取得(MSDN)のためのアプリ申請 をご覧ください。

Windowsアプリ認定キット(WACK)のテストを行う

作成したアプリを Windowsストアに公開する または Windowsアプリの認定 を受ける最善の方法は、アプリを提出する前にローカルでアプリの検証とテストを行うことです。このトピックでは、Windowsアプリ認定キットのインストール方法と実行方法について説明します。 Windowsアプリ認定キット (WACK)は性能やAPIコンプライアンスなどのためのアプリに対してテストを行います。特定のテストに関する詳細は、このキットで実施されます。以下のトピックを参照してください。

前提条件

ユニバーサルWindowsプラットフォーム(UWP)アプリを作成している場合、行わなければならないこと…

  • Windows 8/Windows 8.1/Windows 10 (推奨)をインストールして実行する
  • 「Windows アプリ認定キット」のバージョン10を インストールする

Windows SDKに含まれているWindowsアプリ認定キットをインストールするには、テストを行うためのアプリパッケージを最初に作成する必要があります。プロジェクトメニューから 「ストア」->「アプリ パッケージの作成」…:を選択

パッケージの作成が終了すると、Windowsアプリ認定キット(WACK)を起動する以下のようなウィンドウ画面が表示されます。

WACKが起動したら、以下のダイアログが表示されます。

Next 」をクリックして、検証ステップに進みます。複数のウィンドウが表示された場合も不安を感じる必要はありません。ツールをあなたのゲームで実行してテストを行います。このテストが終了するまでに数分かかります。

パッケージの作成が終了すると、以下のようなウィンドウ画面が表示されます。テストの実行に失敗した場合、修正を行うために検証して、テストを合格するためにこのプロセスを繰り返します。

このリンク 「Click here to view the results」 をクリックするとテスト結果画像のブラウザーが開きます。

以下の画面で全テストの検証を行い、失敗の原因を正確に見つけ出し問題を修正します。すべての問題を修正しテストを繰り返した後、以下の結果が得られなければなりません。

詳細については、右のリンクからご確認いただけます。 Windows アプリ認定キット(Windows App Certification Kit) をご覧ください。

Windowsストアに公開する

ゲームを構築しアップロードが完了したので、ストアにゲームを申請するために開発者アカウントでログインする必要があります。申請プロセスを始めるには、以下の手順に従ってください。

  1. ブラウザを開いて https://dev.windows.com のページに移動する
  2. 自分のアカウントにログインしてダッシュボードのリンクをクリックする
  3. Visual Studioで作成したアプリのパッケージ名を選択する
  4. 「Start your submission」をクリックする
  5. 次の手順では、提出したアプリの申請が認定を受ける前に、あなたのゲームに関する情報を入力する必要があります。これに関連するリンクをクリックすると認定プロセスについて詳しい説明が記載されてる新しいページが開きます。

Packages 」ページは、 提出するアプリのすべてのパッケージ ファイル (.xap, .appx, .appxupload, and/or .appxbundle)をアップロードする場所です。この手順では、アプリがターゲットとしているすべてのオペレーティングシステムのパッケージをアップロードできます。

ユーザーがアプリをダウンロードするとき、Windowsストアは利用可能なパッケージであるか確認を行い、ユーザーのデバイスで最適に動作するパッケージを各ユーザーに自動的に提供します。

パッケージに含まれる内容やパッケージの構成方法について詳しくは、 「アプリパッケージの要件」を参照してください。 下記について知りたい場合は…

申請へのパッケージのアップロード

パッケージをアップロードするには、アップロード フィールドにパッケージをドラッグするか、クリックしてファイルを参照します。 Packages ページでは、 .xap、.appx、.appxupload、.appxbundle ファイルをアップロードできます。

注意: Windows 10 の場合は、 .appx や .appxbundle ではなく、 常に .appxupload ファイルをここに アップロードする必要があります。 ユニバーサルWindowsプラットフォーム(UWP)アプリのパッケージ化に関する詳細については、 「Packaging Universal Windows apps for Windows 10」をご参照ください。

検証中にパッケージに問題が検出された場合は、パッケージを削除し、問題を解決した後、パッケージをもう一度アップロードする必要があります。詳しくは、 「パッケージのアップロードエラーの解決」をご参照ください。

リファレンス情報

本セクションでは、Microsoftの開発者向け年次会議「Build」で登壇したJb Evain氏作の約20分間の簡単な3D Basketballゲームを参照していきます。ゼロからゲームを制作したい場合は、 Jb氏のセッションに 続いていくことで作成することができます。ゲームを作るために必要な外部アセットは、この Hoop.3ds ファイルのみです。

完成したプロジェクトのパッケージBasketball-At-Build.zipを download するだけの場合、それは完成品で再生可能なゲームです。ファイルを解凍したら、このセクションの残りの部分と一緒に進むことができます。

以下は完成したゲームからのシーンです。

「Basketball」

以下の手順では、Windowsストアへのゲームの申請に関して、上記で説明した手順を具体的に示すためにゲームを使用して説明します。

最初からゲームを構築する場合、以下の手順に従う必要があります。終了したプロジェクトをダウンロードした場合、ステップ1-8までスキップ可能です。

  1. Unityを開いて新しい プロジェクト 「Basketball」または「Awesome Game」を呼び出すこともできる
  2. ゲームのシーンを作成する
  3. アセットペインにダウンロードした保存場所から Hoop.3dsをドラッグする
  4. プロジェクトメニュー Assets -> Import Packages -> Charactersを選択する
  5. アセットがダウンロードされたら、 「インポート」 ボタンをクリックする。これでプロジェクトにすべてのアセットが取り込まれる。
  6. 色や弾みをつけるようにマテリアルを適用する球(Sphere)を作成する
  7. 画面を構成する要素を配置する
  8. バスケットリングにボールをシュートすることができるようにShooterスクリプトを記述する
  9. プロジェクト 」タブで、 「Assets」 ツリーを展開して 「Scenes」 フォルダをクリックする。
  10. 「ゲーム」の ゲーム シーンをダブルクリックしてロードします。 次に進む前に、ゲームを再生して実際に動作を確認してみよう。
  11. ゲームの動作確認が終わったら、あなたのスキルをテストしてみよう!

UnityでVisual Studioプロジェクトを作成する

Unity製ゲームをインポートしてテストを行ったら、次に、Visual Studioソリューションの作成へと進みましょう。

メニューで、 File | Build Settings…を クリックして Build Settings ウィンドウを開き、「Scenes In Build」ビューで選択した シーンがあることを確認します。 下記が実行されているか確認してください。

  • プラットフォーム is set to Windows ストア (設定しない場合は、 Windows Store -> Switch Platformをクリックする)
  • SDKは、 is set to Universal 10に設定する
  • UWP Build Typeは、 is set to XAMLに設定する
  • Unity C# ProjectsDevelopment Buildの 両方をチェックする

次に、 「Player Settings」… ボタンをクリックして、情報が正しいか確認してください。このゲームは Landscape モード向けに設計されています。 「Default Orientation」 Landscape に選択されていることを確認します。

最後に、 「Build Settings」ウィンドウから 「Build」ボタンを クリックします。 プロジェクトをビルドしたいフォルダを選択するように求められます。ここに、Visual Studioでプロジェクトを含むソリューションを作成します。

Visual Studioで「アプリ・パッケージ」を作成して、WACKで検証する

Visual Studioでソリューションの作成が成功して移行できるようになったので、Visual Studioに移って設定をします。

生成されたソリューションファイルをダブルクリックします。

「Visual Studio 2015」でローディングする3つのプロジェクトを開きます。エラーが表示された場合も気にする必要はありません。Visual Studioは非同期的にリソースをロードします。すべてのリソースがロードされたら、メニューの Debug を選択して Debug モードのプロジェクトをビルドします。

次に行うことは…

  1. ビルドが成功したか検証を行う
  2. 「Debug」モードから「Master」モードに切り替える。 Debugに切り替える Masterモードを使用してWindowsストアにUWPアプリを申請する必要があるので、 これを行う ことは大切です。(これを行う Masterモードは安全チェックを外し、最高のパフォーマンスを提供するためにプロファイラを無効にする)
  3. お問い合わせの種類をご選択ください から... Store | Create App Packagesプロジェクト 選択する。

今回が初めてまたは数日が経過した場合、Windowsストア開発用証明書で本物であることが求められます。あなたの認証情報を確認するセキュリティコードを入力する必要があります。

ビルドが成功すれば「Launch Windows App Certification Kit 」 ボタンをクリックして続けます。 このテストプロセスでは、Windowsストアへのゲーム申請の確認にしばらくの時間を要します。

すべてパスした場合、以下の画面が表示されます。

UWP向けにUnityゲームを開発する

Unityは、多くのプラットフォームを対象にすることができる成熟したツールセットを提供します。これは、ユニバーサルWindowsプラットフォーム (UWP) アプリ向けのツールサポートが含まれます。Unityのツールは、以下のツールをはじめ、他にも多くに対処することができます。

  • 複数の解像度と画面のサイズ変更
  • アスペクト比

複数の解像度と画面のサイズ変更

すぐに使えるUnityのゲームは、複数の画面解像度と画面サイズの変更を処理することができます。直観的ではないがあなたのゲームにとって極めて重要であるこのサポートのひとつの側面として、メニューとヘッズアップ表示(HUD)機能があります。

Unityは、新しいユーザーインターフェース(UI)システムを提供します。この新しいUIシステムは、サードパーティ製プラグインを使用する必要性を取り除いてあなたのゲームの範囲内で成熟したインターフェースを作成しやすくします。正しくメニューおよびHUDを設定し異なる解像度でテストを行うことが重要です。WindowsフォームもしくはWPFの頃に使ったことがあれば、要素が画面に沿ってサイズを変更することができるのでUI要素を固定できることを思い出すはずです。Unityは、これと同じ機能を提供します。位置の固定に加えて、画面のサイズを変更するとき、UI要素が画面のサイズを変更する、もしくはそのままのサイズにしておくなど定義することが可能です。

アスペクト比

複数の画面の解像度と画面のサイズ変更と同様、Unityは複数のアスペクト比に対応します。常に、ゲームの範囲内でサポートしたい様々なアスペクト比のテストを行うことは大切ですが、Unityで作ると好みのアスペクト比に対しテストを行うことが非常に簡単です。

すべて確実に準備できるように、アクセスしたターゲットデバイスだけでなく、エミュレーターでもテストが行えます。

Unity向け「Visual Studio 2015」のツール

Visual StudioはWindowsストアにUnityで作成したゲームをパブリッシュするための支援ツールを搭載しています。例えば以下のようなツールです:

  • Unityプロジェクトのエクスプローラー
  • Visual Studioでスクリプトの記述とデバッグ
  • グラフィックスのデバッガー

Visual Studio Tools for Unityについて

Unity 5.2以降では、Unity向けの「Visual Studio for Unity」パッケージをプロジェクトにインポートする必要がなくなりました。 「Visual Studio 2015」では、 Tools | Extensions and Updates を実行して「Visual Studio 2015 Tools for Unity」をインストールします。

本セクションでは、VSTUの最新バージョンを入手またはUnity 5.2.以前のバージョンを使用したい場合必要な手順を説明します。Unity 5.2か、それ以降の「Visual Studio 2015」を使用する場合、以下の手順は不要で安全にスキップできます。

「Visual Studio Tools for Unity」は、Microsoft のVisual Studio内でUnityで作成したゲームを記述してデバッグすることができます。ブレイクポイントを追加し、変数や複雑な表現を行う能力に加えて、Unityプロジェクトのエクスプローラーを使用するとUnityエディターに表示されるのと同じ階層構造でVisual Studio から Unity プロジェクト全体を見ることができます。最終的には、Unityで得られるVisual Studioと全く同じコンソールからの入出力も表示されます。

以下は「Visual Studio 2015 Tools for Unity」のインストールを行うスクリーンショットです。チェックボックスを選択することで条件に同意することとなります。

完了すると、インストールの完了を示すダイアログボックスが表示されます。

インストールは完了したが、Unityを開きUnityプロジェクトにこのツールを追加する必要があります。

以下のようなUnityダイアログが表示されます。すべて選択したままの状態で 「インポート」 ボタンをクリックします。

プロジェクトヒエラルキーに新しいフォルダが作成されたのがわかります。

以下の通り、適切にVisual Studioを使用するため「Build Settings」が設定されていることを確認しましょう。「Unity C# Projects」及び「Development Build」を選択しているかなどの確認を確実に行ってください。

これでスクリプトを記述し、Visual Studioで使用するデバッグを行う準備が整いました。インストール手順は、Unity 5.2以前の古いバージョンでのみ必要なことにご注意ください。

Visual Studioでスクリプトの記述とデバッグ

Unityのスクリプトでダブルクリックすると、Visual Studioが起動します。例えば、 「Shooter.cs」 スクリプトを選択し、Visual Studioで起動すると以下のように表示されます。

ここでボールを投げ始める GetButtonDown を呼び出してデバッグしたい場合は、12行目でブレークポイントを設置したあとで 「Attach to Unity」 ボタンをクリックします。

次に、Unityに戻って 再生 ボタンをクリックするだけでゲームがスタートします。 Update が開始されることは知っているが、マウスの左側ボタンをクリックすると、Visual Studioの12行目でゲームの一時停止が表示されます:

デバッグを行うワークフローはVisual Studioプロジェクトの場合と全く同じです。

グラフィックスのデバッガー

「Visual Studio 2015」では作成したゲームを最適化することができる非常にパワフルなグラフィックスのデバッガーを搭載しています。

最初に、「 Graphics Tools 」がシステムに追加されているか確認しましょう。ウィンドウ内で「 Settings 」に移り、「 System 」に移り、「 アプリ&機能 」に移り、「 追加機能を管理する インストールされている場合は、グラフィックツールが 表示されます。

この機能がない場合は、 機能を追加して リストで グラフィックツールをクリックします。 インストールに問題がある場合は、 グラフィックスの診断ツール に関するMSDNドキュメントを参照してください。

UnityでビルドしVisual Studioからもビルドをする必要があり、グラフィックスのツールを使用するためには、Visual Studioを使用するゲームを開きます。以下の通り、Visual Studio内で、 Debug | Graphics | Start Graphics Debugging の順に選択します。

ゲームが起動したら、以下のUIが表示されます。

ゲームの現在のフレームをキャプチャするには「Capture Frame」アイコンをクリックします。ゲームプレイの異なるパートをキャプチャすることができます。

フレームをダブルクリックすると、そのフレームに関する詳細な分析が表示されます。「グラフィックスイベント一覧」のペインにある描画の呼び出しで 前後に移動したり、 各ピクセルを選択し 「グラフィックス ピクセル履歴」 の記録ペインを表示することもできます。

グラフィックスの診断ファイルのサイズは非常に大きくなる可能性があることにご注意ください。詳しい情報については、 「Visual Studio のグラフィックスの診断」のページでご覧ください。

Windows Store Asset Generation

Windowsストアにアプリを申請するには、正しいサイズの画像を提供する必要があります。この機会に、Visual Studioの*拡張機能を活用しましょう。 *UWP Tile Generator 画像を選択することができ、Zipファイルに必要なすべてのサイズを作成します。

UnityアプリとUWPアプリの違いを理解する

Unityは、スクリプトをサポートするスクリプティングバックエンドと呼ばれるフレームワークを使用しています。現在、3つのバックエンド(Mono、.NET、IL2CPP)に対応しています。アプリがWindowsストアをターゲットにするとき、.NET及びIL2CPPのみ利用可能です。 Unityの「Build Settings」ウィンドウで 「Player Settings」ボタンをクリックすると「Scripting Backend」を選択することができます。

Unity IDE上で.NETを使用するスクリプトは .NET のバージョン3.5を参照しています。作成したゲームはVisual Studioにエクスポートされるが、すべてのC#コードは .NETのバージョン4.5のサブセットである.NET Coreに対してコンパイルされます( 注意: IL2CPPと呼ばれるスクリプティングバックエンドを使っている場合、Windowsストアのアプリは.NET 3.5.の使用を継続します)。以下のコード行をUnityのスクリプトに記述し説明します。

        
          System.Collections.SortedList lst = new SortedList();
        
      

型定義を表示するには、Visual StudioのF12 on the SortedList キーを押すことで、このクラスがmscorlibというライブラリに含まれていることが確認できます。

エクスポートしたプロジェクトに同じ「コード」と SortedList 型のF12を挿入した場合、そのクラスのバージョンは.NET Coreの一部であるNuGetで入手したパッケージを含むのが分かります。

従来は .NET Coreにはない.NET 3.5のメソッドまたは型がある場合、これは問題につなげることが可能です。これは、次に、 WinRTLegacyのような 必要なヘルパーライブラリでギャップを埋めて、型だけでなく拡張メソッドも提供します。

ヒント: Unityと.NET Core間の欠けている型に関する説明がある場合は注意してください。ほとんどが古いもので必ずしも正確ではありません。

UnityとUWP間の根本的な相違を理解することが重要である一方、.NET 3.5からNET Coreに移植するとき欠落した型やメソッドの問題は.NET Coreの成長に合わせて改善し続けます。例えば、 System.Threading.Tasks、 .NET 3.5以降に導入されたこのタスクは.NET Coreの一部です。.NET 3.5に存在しない.NET Coreから機能を導入しようとするので他の方法で行うと問題が発生することがあります。

IL2CPPと呼ばれるスクリプティングバックエンドを使っている場合は注目が必要で、UnityエディタとWindowsストアのアプリ間のAPIサーフェスは同一となります。

プラットフォーム特有の機能

UnityとユニバーサルWindowsプラットフォーム(UWP)は異なるプラットフォームなので、このプラットフォーム間の移植は利点がありますが難しさを伴います。

パフォーマンスの最適化

UWPアプリは最適化済みのネイティブのマシンコードを生成する.NET Nativeを使用します。このアプリを使うことで、ゲームが迅速に起動され、バッテリーの消費量が抑えられます。このような最適化の効果はゲームの複雑さによって異なりますが、.NETスクリプティングバックエンドを使用するUnityのゲームについては増大する傾向にあります。Unityが生成するゲームプロジェクトファイルでも同様のアプローチが取られ「Master」構成の場合のみ、.NET ネイティブを使ってコンパイルされます。

ディレクティブ

ゲームのアプリからUWPアプリのトースト通知、もしくはタイル通知を呼び出す場合はどう行いますか?Unityでゲームを作成するとき使用されてるのはスクリプティングバックエンドで.NET 3.5ではありません。この場合は、UnityのIDEで動作しないのでVisual Studioにコードをエクスポートしたら正常に動作するはずです。

このような問題に対処するために、Unityは UnityEngine.WSAを提供します。 これには、Application, Cursor, Launcher, Tile and Toastなどのような stubクラスが含まれます。 UnityとUWPの間の相互運用をするために、UnityのC#スクリプトを利用して、これらの型に対してプログラムすることができます。

.NET 3.5に欠けている機能を補うための第二の技術は、 スクリプトのNETFX_COREディレクティブを使うことです。 このディレクティブは.NET 3.5にコンパイルされないが、.NET Coreに対してコンパイルされるときゲームで必要になるコードブロックを無視するために使用されます。以下の例では、 repository, Unity bitbucketリポジトリについて記載されています。これは、ディレクティブを使用することでUnity IDEは無視できることで失敗する可能性があるのはどんなコードかを示しています。

        
          #if NETFX_CORE
          async
          #endif
          void UpdateTile(byte[] png150x150)
          {
          #if NETFX_CORE
              // In order to change tile image, we should change the uri too
              // in this example we store images in applications local storage
              // we must also take care of cleaning it up
              StorageFolder localFolder = ApplicationData.Current.LocalFolder;
              StorageFolder tilesFolder = null;
              try
              {
                  tilesFolder = await localFolder.GetFolderAsync("tiles");
              }
              catch (Exception)
              { }
              if (tilesFolder != null)
                  await tilesFolder.DeleteAsync();
              tilesFolder = await localFolder.CreateFolderAsync("tiles");
              string tileFile = "tile" + counter++ + ".png";
              StorageFile file = await tilesFolder.CreateFileAsync(tileFile, CreationCollisionOption.ReplaceExisting);
              await FileIO.WriteBytesAsync(file, png150x150);

              string txt = textToTile ? text : "";
              Tile.main.Update("ms-appdata:///local/tiles/" + tileFile, "", "", txt);
          #endif
          }
        
      

時には、NETFX_COREに依存するのではなく、より具体的に Unity_WSA_10_0 Unity_WSA_10_0 ディレクティブを使用したいときがあります。 NETFX_CORE. 一方、後者はWindowsストアアプリのディレクティブですが Unity_WSA_10_0 は特にWindows 10デバイスで使用されます。

プラグインを記述する

プラグインは .NET 3.5と.NET Coreの間の相違点にも影響されます。ときどきコードに互換性が備わっているので問題が起こることはありません。その場合を除くと同じプラグインの異なる2つのバージョンを使用します。1つはUnity IDE(.NET 3.5 APIに基づいて)、もうひとつは、フルゲーム用(.NET Coreに対してコンパイルされる)にする方法でアプリを設定することが可能です。

複数のプラグインを実装するためには一定のルールに従う必要があります。プラグインは、同じ名前を共有し、同じアセンブリバージョン番号を有することが求められます。2つのプラグインも別々のフォルダに配置されなければなりません。例えば、エディターに対応したプラグインは..AssetsPluginsMyPlugin.dllに配置する、一方、UWP特有のプラグインは、..AssetsPluginsWSAMyPlugin.winmdに配置します。

さらに、ご利用の.NET Coreプラグイン用のプレースホルダとして、エディター用に作成したバージョンを設定する必要があります。どのプラグインがスタブか、どのバージョンがUnityのゲームをWindowsストアに配備されるのか知らせるようにしてください。

お使いのUnity プロジェクトエクスプローラーで、Assets\Plugins\MyPlugin.dll の順序で選択し、プラットフォームとしてエディターを確認します。

次に、Assets\Plugins\WSA\MyPlugin.winmdのページに移動して、プラグイン用の的確なプラットフォームとしてWindowsストアのアプリを選択します。

このプロセスを理解しやすくするために、設定されたプラグインをビルドするところまで行います。

Visual Studio 2015を開き「MyPlugin」と呼ばれる新しいプロジェクトを作成します。 Visual C# | Windows | Universal | Windows Runtime Component のプロジェクトテンプレートを使用します。 (代わりに、 Class Library のプロジェクトテンプレートを使用することもできますが、Windowsランタイムコンポーネントでは、機能追加を提供するWindowsランタイム言語プロジェクションから消耗する興味深い機能がいくつか含まれています)

あなたの解像度で右クリックして Add -> New Project の順に選択します。 これは、Unityエディタだけで使用されるスタブバージョンのライブラリになります。.NET 3.5に対してコンパイルされるので、 Visual C# | Windows | Classic Desktop | Class Libraryを使用して作成する必要があります。 同じ名前で同じ解像度は2つのプロジェクトに使用することができないので、このプロジェクトは「MyPluginStub」と呼びます。

2つのライブラリは同じ名前でなければいけないので、他のプロジェクトのように「MyPlugin」と呼ばれる「MyPluginStub」向けの出力ファイルを設定する必要があります。そのためには、「Solution Explorer」で「MyPluginStub」上で右クリックして、 Propertiesを選択します。 「Application」タブで、他のプロジェクトと一致させるために、デフォルトの「名前空間」フィールドと「アセンブリ名」のフィールドの両方を「MyPlugin」に変更します。これを行っている間、「Target」のフレームワークフィールドを「.NET Framework 3.5.」に変更しなければなりません。

各プロジェクト用に作成されたVisual StudioのClass1.csファイルを削除します。次に「Foo.cs.」と呼ばれる「MyPlugin Windowsランタイムコンポーネント」プロジェクトで新しいクラスを作成します。Windows デスクトップのプロジェクトと同様のクラスを作成する代わりに、リンクされたファイルとして追加することでFoo.csを共有するつもりです。

これで「MyPlugin」プロジェクトならびに「MyPluginStub」プロジェクトから同じ物理ファイルのFoo.cs,を編集することができるようになりました。両方のプロジェクトからコードエディターのファイルを検査します。「MyPluginStub」から見ると、Visual Studioは、System.Threading.Tasks 名前空間のためのステートメント周りに赤い波線があることに 気付くと思います。 型は.NETコアに存在しますが、.NET Framework(ネット・フレームワーク) 3.5には存在しないためです。

使用する予定はないのでエラーを修正する行を削除するということは行えます。ここでは、どのように動作するか説明するための設定ディレクティブを試してみましょう。以下の3行のコードでタスクに使用するステートメントを置き換えます。

        
          #if NETFX_CORE
            using System.Threading.Tasks;
          #endif
        
      

これを追加した後、プロジェクトがもう一度コンパイルすることが分かります。barと呼ばれるFooクラスのメソッドがまだ必要です。Windowsランタイムコンポーネント内で呼び出されている場合や、Unityエディターおよび別のエディターから呼び出される場合、barクラスは1つのメッセージを返します。以下のbarメソッドの実装をFooクラスに加えます(これを行うと、ランタイムコンポーネントがこれを必要とするので、クラス宣言にキーワードの「sealed」修飾子を加える。)

        
          public sealed class Foo
            {
              public string Bar()
              {
                #if NETFX_CORE
                  return "Windows Store version of the plugin.";
                #endif
                  return "Unity Editor version of the plugin.";
              }
            }
        
      

2つのライブラリをビルドします。

次に、これらのライブラリに使うためのUnityのプロジェクトを設定します。Unityのプロジェクトを開き、「Plugins」と呼ばれるアセット下で新しいフォルダを作成します。「Plugins」下にWSA (Windowsストアアプリケーションの略称) と呼ばれる別のディレクトリを作成します。あなたの「MyPluginsStub」プロジェクトからMyPlugins.dllという名前のプラグインライブラリファイルを検索し、そのファイルを..AssetsPluginsへドラッグします。次に、コンパイルされた「MyPlugins.winmd」を検索して..AssetsPluginsWSAへドラッグします。

アセットペインでPluginsMyPlugin上をクリックします。これで「MyPlugin Import Settings」がインスペクタペインに表示されます。「Any Platform」の選択を解除する代わりに「Editor」を選択します。これは、Unity エディターで作業しているとき、実行する必要があるライブラリのバージョンIDEを教えてくれます。

次に、レベルを1つ下に移動して「PluginsWSAMyPlugin」を選択します。インスペクタは、他のプラットフォームではなく、お使いのプラットフォームの「WSAPlayer」をすでに選択済みのはずです。これは、Windowsストアに公開したいライブラリのバージョンであることをUnityに伝えます。「Placeholder」フィールドまで下がって、プラグインフォルダのルートであなたのスタブライブラリを検索します。そうすることで、2つのライブラリ間の関係を説明します。PluginsMyPlugin.dllは、実際のライブラリ「PluginsWSAMyPlugin.winmd」のプレースホルダです。

2つのライブラリが適切にUnityに設定されているか確認するためにテストしましょう。「TestFooBar」と呼ばれるUnityの新しいC#スクリプトを作成します。Fooクラスのprivateなインスタンスを作成し、LoggerでBarの戻り値を書き出します。

        
          using UnityEngine;
          using System.Collections;
          using MyPlugin;

          public class TestFooBar : MonoBehaviour {

            private Foo testFoo = new Foo();
             // Use this for initialization
               void Start () {
                  Debug.Log(testFoo.Bar());
                }

            // Update is called once per frame
              void Update () {

              }
            }
        
      

最終的に、作成したスクリプトをアタッチするため、プレイヤーのように任意のゲームオブジェクト上にスクリプトをドラッグします。これはスクリプトのStartメソッドが呼び出されるようにします。Unityでゲームを実行し、すべてが計画通りに進めば、正しいメッセージがコンソールペインに表示されます。

最後に、 Build Settings に進み、BuildボタンをクリックしてプロジェクトをVisual Studioにエクスポートします。

今回は、Visual Studioを通じて作成したゲームを実行すると、Visual Studioの出力ウインドウに以下のメッセージが表示されます。

上記の例では、プラグインはユニバーサルWindowsプラットフォーム(UWP)とUnity間のほぼすべてのインタラクションの基盤です。コンソールで正しいメッセージが正常に表示されたら、UWPコードのカプセル化とUnity製ゲームでそれにアクセスするために必要なことがほとんど分かります。

動画広告サービス

Windowsストア/Azureサービス向けUnityプラグインをダウンロードしてインストールすることで IAPまたはUnityプラグインを使用することができます。 プラグインには、さらに、アプリ内課金、ライセンスチェックおよびレシート検証のためのAPIが含まれています。

WindowsストアのUnityプラグインを使用する最も簡単な方法は、GitHubからUnityパッケージをダウンロードすることで、 Assets | Import Package | Custom Packagesの順に選択してご利用中のアプリにインポートします。 パッケージのインポート後、Unityのプラグインフォルダに置かれた適切なバイナリとUnityのPluginsWSAフォルダを持ちます。

また、エクスポートされたUWPアプリから最新の 「Microsoft Store Engagement」や「Monetization SDK」 拡張機能を使用して、バナー広告や動画インタースティシャル広告を表示することができます。「Microsoft Store Engagement 」や「Monetization SDK 」は、単一の統合インストーラーのストアサービスに関連する他の機能で「Microsoft Universal Ad Client SDK」の広告機能を統合します。

Analytics

あなたのプレイヤーに関するアナリティクスデータを入手するには、ユニバーサルWindowsプラットフォーム(UWP)を通じて、もしくはUnityプラットフォームを通じて行うことができます。補間データを入手するために両方のプラットフォームを一緒に使うことも選択可能です。Unityのプロジェクトルートを移動したい場合は、あなたのプロジェクト分析をUnity Services IDにリンクしてから有効にする必要があります。詳細は、 Unity マニュアルをご覧ください。

ゲームをデプロイしたら、データは自動的に Windows Dev Center Dashboard上に表示されます。ダッシュボードは、以下について分析レポートで最新情報を表示します。

  • 入手(Acquisitions)
  • ヘルス
  • レーティング
  • レビュー
  • フィードバック
  • 使用法
  • IAPの入手数
  • 広告メディエーター
  • 広告パフォーマンス
  • アプリインストール広告
  • チャンネルと変換

有効にすると、あなたのゲームのテレメトリ法を表示することができます。

最後に、REST APIsを使用して Windows Dev Centerを 通過せずにこの分析を最も有用な方法で表示することもできます。

アプリ内課金 (IAP)

ユニバーサルWindowsプラットフォーム (UWP) にエクスポートされたUnity製ゲームは、UnityとUWPの2つのプラットフォームに依存しているので、アプリ内課金ができるようにする2つのオプションをご利用いただけます。Windows ストアおよびAzureサービス向け IAPまたはUnityプラグインを使用することができます。

Unity IAPを使うには、UnityのServicesウィンドウを通じてUnity ServicesのProject IDを設定する必要があります。Windowsストア向けにIAPを有効にするにはダイアログに従っていただくことで簡単に行えます。 詳細は、 Unityのウェブサイトでご覧いただけます。Unity IAPは、IL2CPPスクリプティングバックエンドで動作しないことにご留意ください。

WindowsストアのUnityプラグインで、Unityのスクリプトファイル内からあなたのリストを取得するためにストアのAPIを使用します。「Windows Store Dev Center」を介して、 最初に あなたのアプリ向けにアプリ内課金を実装する必要があります。完了後、アプリを一覧表示して更新することができたり、IAPで購入することができます。プラグインによって行われる最も重要な呼び出しでは、以下のサンプルコードに示すようにアプリ内課金を検索する LoadListingInformation LoadListingInformationメソッドを呼び出す必要があります。

        
          Store.LoadListingInformation((response) =>
          {
            if (response.Status == CallbackStatus.Failure)
              {
                prettyPrintErrors("LoadListingInformation", response);
                return;
              }

            prettyPrintSuccess("LoadListingInformation", response);
            text.text = "\nFinished Loading Listing Information" + text.text + "\n";
            Debug.Log(response.Result.Description.ToString());
            foreach (var productListingKey in response.Result.ProductListings.Keys)
              {
                Debug.Log("Key: " + productListingKey + " value: " + response.Result.ProductListings[productListingKey].Name);
              }
          });
        
      

Store APIの使用方法を示す完全な 実装例 はGitHubでご確認いただけます。

ベストプラクティス

ゲームの中核となる部分が完成したので、アプリを公開する準備を整えるために行いたい仕上げがあります。本セクションでは、Windowsストアへの展開を容易にするためのベストプラクティスを説明しています。

スプラッシュスクリーンとローディングプロセス

ゲームの起動中に、ゲームがフリーズしたり停止したりしていないことがユーザーにわかるよう進行状況インジケーターを表示することをお勧めします。

本書は、XAML プロジェクトを使用していることを前提とします。違うプロジェクトを使用している場合、ここで説明する考え方の大半は DirectX プロジェクトにも当てはまりますが、実装は大きく異なります。

Unity を使用する Windows ストア ゲームは大きくは 2 段階で読み込みます。

  1. アプリのスプラッシュスクリーン
  2. スプラッシュ エクスペリエンスの延長

最初のスプラッシュ スクリーンの画像は OS によって表示されます。スプラッシュ スクリーンはアプリのマニフェストを以下のように更新することで構成することができます。

Windows がアプリ起動時のスプラッシュ スクリーンを表示するのは、Unity シーンをホストする (XAML マークアップで記述された) ページを OS が読み込む間だけです。

通常は Unity シーンによる読み込み時間の方が長いため、Unity シーンの読み込み中に再度XAML を使用して、既存の画像の上に進行状況インジケーターを備えた同じスプラッシュ画像を表示します。ここでは、これをスプラッシュエクスペリエンスの延長と呼びます。MainPage.xaml で、スプラッシュ スクリーンの画像に進行状況バーを追加しています。

        
          <SwapChainPanel x:Name="DXSwapChainPanel">
            <Grid x:Name="ExtendedSplashGrid" Background="#222C37">
              <Image x:Name="ExtendedSplashImage" Source="Assets/SplashScreen.png" 
                VerticalAlignment="Center" HorizontalAlignment="Center"/>
              <ProgressBar x:Name="SplashProgress" Foreground="#FFFFFFFF" 
                Background="#FF333333" Maximum="10000" Width="320" Height="25"/>
            </Grid>
          </SwapChainPanel>
        
      

MainPage.xaml.cs (XAML UI の分離コード ファイル) では、コンストラクターを使用してタイマーを起動し、進行状況バーの目盛りと視覚的なフィードバックを提供しています。

フォームファクタのデバイス

1 つのコードベースを多くのフォームファクターで使えることがユニバーサルWindowsプラットフォーム(UWP)の重要な特徴ですが、ゲームについては、一般的に、特定のフォームファクターに対してある程度の調整や最適化が依然として必要です。多くの場合、入力メカニズム (タッチ、キーボード、マウス、ゲームパッドなど)、ウィンドウのサイズ変更、リソースやアセットの最適化、各特定フォームファクターとネイティブプラットフォームとの統合を調整します。

端末の向きへの対応

新しいデバイスはワイドスクリーンを採用するものが圧倒的に多いことから、Unityエディターがエクスポートするプロジェクトの既定の向きは横向き(landscape)です。ゲームで縦向き(portrait)をサポートする場合はVisual Studio でアプリのマニフェストを変更する必要があります。Unityエディターではマニフェストを変更できません。

マニフェストを変更するには、Visual Studioの Windowsストアプロジェクトのルートにある Package.appxmanifest ファイルをダブルクリックし、マニフェストエディタでサポートする向きのチェック ボックスをオンにするだけです。

デバイスや画面の向きを制御するAPI (Input.deviceOrientation および screen.orientation) は Unity 内で適切に機能します。これらの API を使用して、デバイスの向きを照会したり、特定のシーンの向きを設定することもできます。

ウィンドウ化

ユニバーサル Windows プラットフォーム(UWP) のアプリは、Windows 8 や 8.1 の全画面アプリではなく、サイズ変更可能なウィンドウ内でホストされるアプリになるため、開発するゲームやアプリではウィンドウ化を考慮することになります。

Screen.heightとScreen.width プロパティでは、 ネイティブ (ピクセル) サイズの空き領域がまだレポートされているので、この違いのほとんどはUnity開発者としてユーザーに対し透明性を提供しています。

ユーザーがウィンドウのサイズを変更するとき次に何を行うか決めれるように、ゲームを一時停止することをお勧めします。マルチウィンドウデスクトップでは、ユーザーが別のウィンドウを操作してゲームウィンドウからフォーカスが失われた場合に、ゲームを一時停止すべきです。

ゲームの一時停止と再開

Windows では、Unityのゲームエンジンは通常ゲームからフォーカスが失われた場合、アプリウィンドウをいつでも切り替えることができます。ゲームアプリを一時停止したい場合があるシナリオでは、XAMLページ間のナビゲーション中など UnityPause メソッドを呼び出します。

アプリケーションが一時停止しようとしているときに何か特別な処理が必要な場合は、代わりにスクリプトの OnApplicationPause コールバックを使用します。

ゲームパッドやマウスから入力を取得する

Windows デバイスファミリーは、キーボード、マウスから、タッチ、ゲームパッドまで幅広く入力に優れたサポートを提供しています。幸いなことに、これらの入力モードのすべてがUnityで十分なサポートが行われているだけでなくUnityのInput Managerを通して適切に抽象化されています。

バスケットボールゲームでは、「Fire1」の入力軸を元にボールが投げられます。

        
          void Update()
            {
              if (Input.GetButtonDown("Fire1"))
              {
                var instance = (Rigidbody)Instantiate(this.prefab, transform.position 
                        + (transform.forward * 1.05f), transform.rotation);
                instance.velocity = (transform.forward + transform.up / 2) * this.speed;
              }
            }
        
      

「Fire1」は、実際、Input Managerで下記に示されたようにマウスの左ボタンと同様にゲームパッド/ジョイスティックの両方のボタンにデフォルトでマッピングされています。Unity IDEのInput Managerは、 Edit->Project Settings->Input の順で選択することで表示できます。

Xbox Oneコントローラーでは、「Fire1」にマッピングされる「joystick button 0」がAボタンになります。移動やジャンプのFPSコントローラーコンポーネントにマッピングされるInputがあります。マウス移動では、上下左右のキーボードキー並びに/A/、/W/、/S/、/D/キー、デフォルトでプレイヤーが移動するXbox Oneコントローラーの左ジョイスティックなど、右マウスボタンは、スペースバー、プレイヤーをジャンプさせるXbox Bボタンなどがあります。

入力軸をリマップもしくはゲームをサポートするのに軸を追加することでカスタム体験の入力(input)をよりカスタマイズすることも可能です。詳しくは、 Unityマニュアルの 仮想軸に関するページをご覧ください。

結論

本書では、Visual StudioのユニバーサルWindowsプラットフォーム(UWP)プロジェクト向けにUnityゲームを設定およびエクスポートする方法を説明しました。UWPゲームを Windows ストアに申請する方法、UnityプラットフォームとユニバーサルWindowsプラットフォーム間の微妙な違いを取り上げ、ゲーム開発者として知っておくべきプラットフォーム特有のコードと機能も解説しています。最後に、本書はパブリッシュ用にゲームを完成させるベストプラクティスといってもよいでしょう。

参照

トップへ戻る
OK

弊社の Webサイトは最善のユーザー体験をお届けするためにクッキーを使用しています。 詳細はこちらをクリックしてください。