Visual Studio Tools for Unity 2.0 Preview の新機能等
こんにちは。
マイクロソフトの渡辺です。
2014年11月12日・13日に開催された Microsoft の開発者向けイベント Connect(); にて、Visual Studio Tools for Unity ( UnityVS ) の最新バージョン、Visual Studio Tools for Unity 2.0 Preview が発表されました。Visual Studio 2010, 2012, 2013 にて引き続きご利用頂けると共に、Visual Studio 2015 Preview にも対応しています。
また、Visual Studio Professional 相当の機能を持つ ( つまり拡張機能をインストールできる )、 "無料" のエディション Visual Studio Community 2013 が発表され、今後は完全無料で Unity 開発に Visual Studio を利用できるようになりました ( ※ Visual Studio Community 2013 の利用条件は、公式ページをご確認ください ) 。
今回は、この新しい Visual Studio Tools for Unity 2.0 Preview で、新たに追加された機能や改善された点等をご紹介します。
- シェーダ ( Shader ) ファイルの編集
- コレクション ( ArrayList, List, HashTable, Dictionary ) の表示改善
- Public なメンバーや Static でないメンバーをカテゴリ分けして表示
- ウィザードによる MonoBehaviour の挿入
- クラスと構造体に対する DebuggerDisplayAttribute の実装をサポート
- T4 テキスト テンプレートによるファイルの生成
- その他の改善
- 既知の問題への対応
- 関連情報
※2015/1/14 追記:Visual Studio Tools for Unity の概要は「 Visual Studio Tools for Unity ( UnityVS ) で Unity 開発/デバッグの生産性を上げよう 」をご覧ください
※2015/1/14 追記:スライドでもまとめました適宜ご参照ください
シェーダ ( Shader ) ファイルの編集
追加してほしい機能として要望の多かった、Visual Studio 上でのシェーダ ( Shader ) ファイル、.shader ファイルの編集に対応しました。特に Visual Studio 2015 Preview では、シンタックスハイライトにも対応しています。

コレクション ( ArrayList, List, Hashtable, Dictionary ) の表示改善
デバッグ時に、よく使われるコレクション ( ArrayList, List, Hashtable, Dictionary ) がより分かりやすく表示されるようになりました。ローカルウィンドウ、またはウォッチウィンドウより値を確認できます。


Public でないメンバーや Static なメンバーをカテゴリ分けして表示
ローカルおよびウォッチウィンドウ内で、Public でないメンバーや Static なメンバーは、Public メンバーとは別にカテゴリー分けして表示されるようになりました。外部のライブラリで定義された型を Unity スクリプトから呼び出す際に、その内部的な実装について細かく見ていく機会は少ないと思います。デフォルトでは、Public なメンバーのみ直接表示し、Public でないメンバー、Static なメンバーについては、必要な際にツリーを開いてご確認いただけます。

ウィザードによる MonoBehaviour の挿入
Visual Studio Tools for Unity には、MonoBehavior ウィザード ( Ctrl + Shift + M ) と クイック MonoBehavior という2つの MonoBehavior 実装支援機能があります。これらの機能を使って挿入されるコードが、ユーザが設定するコーディングスタイルに準拠するようになりました。
コーディングスタイルは、"ツール" メニューのオプション内の、テキスト エディターの項目から設定できます ( もしくは、Visual Studio 右上部の "クイック起動" より直接呼び出せます )。

クラスと構造体に対する DebuggerDisplayAttribute の実装をサポート
DebuggerDisplayAttribute を使うと、デバッグ時に変数ウィンドウ内でどのように表示されるかを指定できます。単純にプロパティ名や値使うのではなく、それらをカスタマイズして組み合わせた表示もできます。

また、DebuggerTypeProxyAttribute の実装をサポートもされ、型の表示プロキシを指定することで、より柔軟に開発者が表示をカスタマイズすることができるようになりました。
T4 テキスト テンプレートによるファイルの生成
Visual Studio Tools for Unity のプロジェクトにおいて、Visual Studio の T4 テキスト テンプレートの使用がサポートされました。デザイン時 T4 テキスト テンプレートを用いて、入力ファイルから動的にファイルを生成することができます。例えば XML ファイルを入力として、XML ファイルを変更する度にテキストテンプレートを用いてコードを再生成すると、要件が変わった際に構成を素早く変更でき、変更の信頼性も高まります。

その他の改善
SerializedProperty のデバッグ時の表示
インスペクタのカスタマイズをする際等に使用する SerializedProperty が持つ値の、デバッグ時の表示方法を改善しました。Serialized Property は intValue や floatValue をはじめ様々な型のフィールドを持っていますが、デバッグ時には、これらのフィールドの中で実際に値を持っているフィールドのみを表示します。この改善により、プロパティの値が確認しやすくなったのはもちろんですが、無駄な例外が発生しないので表示速度が向上しています。
ResX リソースの追加
Visual Studio Tools for Unity が生成するプロジェクト内で、ResX リソースがサポートされました。リソースをプロジェクトに追加すると、生成された C# ファイルの名前が .resx ファイルと同じである限り、VSTU が自動的に認識します。
既知の問題への対応
- Visual Studio から "Attache and Play" が行われた後、Unity Editor 上でゲームが開始される前に、ソケット接続を初期化するように修正しました。これは "Attach to Unity and Play" を行った際の Unity Editor と Visual Studio の接続の安定性を向上のためです。
- Unity をフリーズさせがちなメソッドの呼び出しを避けるようにしました。これにより、デバッガーをアタッチした際のフリーズを防ぎます。
- シンボルがない場合のコーススタックの表示を修正しました。
- 必要なければ、ログコールバックを登録しないようにしました。
関連情報
- Visual Studio Tools for Unity 2.0 Preview ( The Visual Studio Blog )
- Visual Studio Tools for Unity 2.0 Preview ( 1.9.8 ) Change log
- Unity で作る Windows ストア アプリ ( MSDN )
- Visual Studio Tools for Unity ( MSDN )
Visual Studio Tools for Unity ( UnityVS ) で Unity 開発/デバッグの生産性を上げよう - Yuta Watanabe's Blog
Visual Studio Tools for Unity ( UnityVS ) を無料の Visual Studio Community 2013 で使おう
こんにちは。
マイクロソフトの渡辺です。
先日ご紹介した Visual Studio Tools for Unity ( UnityVS ) ですが、
Visual Studio Tools for Unity ( UnityVS ) で Unity 開発/デバッグの生産性を上げよう - Yuta Watanabe's Blog
Visual Studio Community 2013 を利用することで、今後は完全無料でご利用頂けます!
Visual Studio Community 2013 は、 Visual Studio Professional 相当の機能を持つ " 無料 "のエディションです。つまり、拡張機能である Visual Studio Tools for Unity をインストールすることができます。
Visual Studio Professional 以上のエディションをお持ちでなかった方も、この機会にぜひ Visual Studio Community 2013 をご利用頂き、Unity での開発/デバッグの生産性を上げましょう!!
そして、もう1点ニュースが。
Visual Studio Tools for Unity ( UnityVS ) が、バージョン 2.0 のプレビューとして更新されました ( 1.9.8 )。こちらの新機能も追ってご紹介してきます。
Unity で生成する Windows アプリの中身とデバッグ
こんにちは。
マイクロソフトの渡辺です。
前回は、「 Unity で Windows アプリをビルドしてみよう 」ということで、Unity Editor からビルドを行い、Visual Studio 上でアプリを実行してみるまでの流れをご紹介しました。今回は、この仕組みをもう少し詳しく見ていくとともに、Visual Studio 上でもゲームをデバッグしてみたいと思います。
※下記記事も合わせてご覧ください
Unity で Windows ストア アプリをビルドする流れ
まず前回 Unity で Windows アプリをビルドした流れをおさらいすると、Unity でのWindows ストア アプリ開発はざっくり、
- Unity Editor でゲームを開発
- Unity Editor から Windows ストア アプリをビルド
- 生成された Visual Studio のソリューションを開く
- Visual Studio で Windows ストア アプリのプラットフォーム固有機能を実装
- Visual Studio で最終的な Windows ストア アプリのバイナリをビルド
という流れで進みました。しかしなぜ、2回もビルドを行うのでしょうか。

少し細かい話になりますが、今後 Windows ストア アプリを開発する上で頭の片隅には置いておいた方がいい内容ですので、上記の流れを少し詳しく見ていきましょう。
Unity Editor から Visual Studio、Mono から .NET へ
( 1 ) 通常 Unity Editor 上で開発されるゲームは、.NET Framework のオープンソース実装である Mono でコンパイルされ、Mono ランタイム上でゲームが実行されます。( 5 ) 一方、Windows ストア アプリは、.NET でコンパイルされ、.NET/WinRT ランタイムの上で動作します。
この違いを乗り越えるため、Windows ストア アプリの開発では、Unity Editor でビルド -> もう一度 Visual Studio でビルド、というステップを踏みます。
具体的には、Unity Editor が Windows ストア アプリをビルドする際に、( 2 ) .NET コンパイラを利用してゲームをビルドし、Visual Studio のソリューションを生成します。この時は、.NET のサブセットである .NET Core プロファイルが使われます。
その後で、( 3 ) 生成されたソリューションを開き、( 4 ) Visual Studio 上で、Windows ストア アプリ固有の機能を .NET/WinRT API を使って開発。最終的には ( 5 ) アプリを .NET コンパイラでビルドし、.NET/WinRT ランタイム上で動かします。
Mono と .NET の違い
上述の通り、Unity Editor 上で動作するゲームと、最終的に Windows プラットフォーム上で動作するアプリでは、コンパイルに使われるプロファイルが違います ( Mono と .NET Core ) 。そのため、Mono にはあっても .NET Core プロファイルにはない API ( またはその逆 ) がいくつかあり、コンパイル時にエラーが発生することがあります。
ただ、これらの API の多くには、.NET API や WinRT API に代わりになるものがありますし、UnityEngine.Windows や UnityEngine.WindowsPhone、WinRTLegacy の下にいくつか替わりになる API も提供されています。
コードの修正ポイントは追って、このブログでご紹介します。また、「 Unity による Windows ストアへの移植のヒント 」にも詳しい API の実装方法やサンプルが示されていますので、ぜひご参照ください。
Unity Editor と Visual Studio での編集
実際のゲーム開発では、多くの場合、Unity Editor 上でのゲーム開発と、Visual Studio 上での Windows ストア 向けの開発は並行して進みます。
Unity Editor から Windows ストア アプリをビルドした際に、Visual Studio ソリューション内で変更が加えられるのは
- プロジェクト内の Data フォルダー
- プロジェクトの参照アセンブリ
の 2つです。

そのため、Visual Studio から加えたプロジェクトへの変更やプラットフォーム固有機能の実装、マニフェストファイルや構成ファイルの修正は、Unity Editor からの Build でソリューションを上書きしても失われることはありません。
ただし、Unity Editor にて新しいプラグインや参照の追加等、プロジェクトファイル自体に影響する変更を行った場合は、Visual Studio 上でプロジェクト ファイルを手動で変更を加える必要がある点にご注意ください。
Windows ストア アプリのデバッグ
Unity Editor から Windows ストア アプリをビルドする際に、Build Settings にて " Unity C# Projects " にチェックをつけました。このオプションによって、生成されるソリューション内に Assembly-CSharp-* プロジェクトが含まれ、Unity スクリプトを Visual Studio 上でもデバッグ&編集することが出来ます。ただし、このソースコードはコピーされたわけではなく、Unity Editor で見ているのと同じ、元のファイルを編集することになる点にはご注意ください。

Unity スクリプトの確認
それでは、ソリューションに含まれる Assembly-CSharp-* プロジェクトの中身を確認してみましょう。Assets/Scripts 以下に Unity Editor 内と同じようにスクリプトファイルが置かれています。

ブレークポイントを置いてデバッグしてみる
ここでは、Enemy.cs を開いてスコアの更新部分にブレークポイントを置いてみます。

そしてアプリをデバッグしてみて敵を倒すと...

ブレークポイントで処理がとまり、変数の状態等を確認することができます。
Unity Editor 上でのデバッグ
参考として Unity Editor 上でのデバッグについても触れたいと思います。
Unity Editor にはデフォルトの IDE として MonoDevelop が付属しています。なので、Unity Editor でゲームを開発しているときは MonoDevelop を使ってデバッグ。Windows ストア アプリとしてビルドした後は、Visual Studio 上でデバッグという形に通常はなります。
しかし、Unity Editor でゲームを開発している時も ( しいて言えば、iOS/Android 向けアプリを開発している時も )、Visual Studio の機能を使ってデバッグする方法があります。それを可能にするのが Visual Studio Tools for Unity という Visual Studio 向けの拡張機能です。こちらを利用していただくと、Visual Studio で Unity ゲームを開発/デバッグすることが出来ます。
詳しいインストール方法や使い方は下記記事をご覧ください。
Visual Studio Tools for Unity ( UnityVS ) で Unity 開発/デバッグの生産性を上げよう - Yuta Watanabe's Blog
このあとは
今回は、Unity での Windows ストア アプリをビルドする流れとデバッグ方法について、ご紹介しました。既存ゲームの移植のポイントや、Windows プラットフォーム固有機能の実装方法については、追ってこのブログで解説していきたいと思います。
次回移行は、アプリのリリースに向けた準備と、アプリ申請の流れや、Windows プラットフォーム固有機能の実装方法についてご紹介していきます。
関連リソース
Unity 開発者のための Windows ストア概要 - Yuta Watanabe's Blog
Unity で Windows アプリをビルドしてみよう
こんにちは。
マイクロソフトの渡辺です。
「 Unity 開発者のための Windows ストア概要 」に続き前回は「 Unity で Windows アプリを開発する環境を整える 」ということで、Unity で Windows アプリをビルドするのに必要な環境を確認しました。
今回は、Unity Asset Store でダウンロードできるサンプルを利用して、実際に Windows アプリをビルドする流れをご紹介していきます。
準備
この記事では、Unity Asset Store で提供されているサンプル「 2D Platformer 」を例に、Windows アプリをビルド/デバッグしてみます。

まずは、準備として 2D Platformer を Asset Store からダウンロードし、インポートしてください。


Unity でビルドできる Windows アプリの種類
Unity からビルドできる Windows アプリには次の 4つがあります。これらは、Windows ストア アプリの Build Setting の " SDK "のプルダウンから選択できます。
- 8.0 ( Windows 8 の ランタイムで動く Windows ストア アプリ )
- 8.1 ( Windows 8.1 のランタイムで動く Windows ストア アプリ )
- Phone 8.1 ( Windows Phone ストア で公開するアプリ )
- Universal ( 1つのソリューションで、Windows 8.1 ストア アプリ & Windows Phone 8.1 アプリの両方をターゲットとすることができる ユニバーサル Windows アプリ )

Windows 8.1 および Windows Phone 8.1 へのアップグレードが順調に進んでいることを見ると ( 参考:「Windows & Windows Phone ストア アプリ ダウンロード数トレンド ( 2014年9月 ) 」)、今あえて 8.0 アプリとしてビルドする理由はほぼありません。
Windows 8.1 および Windows Phone 8.1 向けのストア アプリは、それぞれ別々にビルドすることもできます。
また、ユニバーサル Windows アプリとしてビルドすると、1つのソリューション内で共通コードを共有し、Windows 8.1 ストア アプリ、Windows Phone 8.1 ストア アプリの両方をターゲットしてビルドすることが出来ます。Windows 10 の発表でも言及されている通り、ユニバーサル Windows アプリの基盤は Windows 10 へと引き継がれます。より多くのユーザにリーチしながら、Windows 10 に備える最良の方法は、ユニバーサル Windows アプリの開発です。
また、Type として、XAML C# Solution と XAML C++ Solution を選択できます。特に C++ で書きたい!というわけでなければ、C# Solution を選びましょう ( C++ ソリューションには対応していないプラグインもあるので注意 )。
Windows アプリをビルド
ではいよいよ、Unity から Windows アプリをビルドしてみます。
File > Build Setting を開き、Windows Store にプラットフォームをスイッチ。
- Type:XAML C# Solution
- SDK:Universal 8.1
- Build and Run on:Local Machine
- Unity C# Projects:チェック
- Development Build:チェック
という設定で、Build ボタンを押します。保存先を聞かれますので指定しましょう。ここでは、Builds フォルダを作成し、その下に Universal フォルダを作り保存することにしました。

ビルドが進んで、

完了すると、Visual Studio のソリューションが生成されます。

Visual Studio でソリューションを開く
生成されたソリューションをダブルクリックして、開いてみます。まずはソリューションエクスプローラーからソリューションの中身を見ていきましょう。

今回は、Build Settings にて SDK を Universal としたので、ユニバーサル Windows アプリが生成されています。
1つのソリューションの中に、
- Windows ストア アプリをターゲットとするプロジェクト ( _2D v3.Windows (Windows8.1) )
- Windows Phone アプリをターゲットとするプロジェクト ( _2D v3.WindowsPhone (Windows Phone8.1) )
- 共有コードである Shared Project ( _2D v3.Shared )
の 3つが含まれているのが分かります。
※参考「 Windows と Windows Phone を対象とするユニバーサル Windows アプリの構築 」
Package.appxmanifest ( アプリの設定をするマニフェストファイル ) や、各種素材等のプラットフォーム固有ファイルは、Shared Project ではなく、それぞれのプロジェクトに含まれます。
Build Settings にで SDK を " 8.1 " または " Phone8.1 " とした場合は、Shared Project がなくなり、Windows 8.1 のプロジェクトまたは Windows Phone 8.1 のプロジェクトのいずれかがソリューション内に含まれる形となります。
Windows ストア アプリを実行してみる
さて、さっそくですが Windows ストア アプリを実行してみましょう。
まずご確認いただきたいのが、構成マネージャーです。

Unity でのビルドで生成されたソリューションは、デフォルトで ARM がアクティブソリューション プラットフォームが指定されています。x86 マシンでデバッグする場合は、こちらを x86 に変更する必要がありますのでお忘れなく。

構成マネージャーでの設定変更を行った後は、さっそくデバッグ ボタン ( または F5 ) を押して実行してみましょう。すると、ビルド & アプリの配置と進み、アプリが起動してきます。

ちなみに、デフォルトではローカルコンピューターでのデバッグが選択されていますが、シミュレータでデバッグすることもできます。

タッチ操作やセンサーの値等のシミュレート、画面のキャプチャー等を行う際はこちらをご利用ください。

Windows Phone アプリを実行してみる
続いて Windows Phone アプリも実行してみます。
Windows Phone 8.1 のプロジェクトを右クリックして、" スタートアップ プロジェクトに設定 "を選びます。ソリューションエクスプローラー内で太字表示されているプロジェクトが、現在のスタートアップ プロジェクトです。

Windows ストア アプリの実行時と同様にエミュレータで実行することができます。既定では Device ( 実機 ) が選択されている場合があるので、エミュレータを選択しましょう。

あとの流れは、Windows ストア アプリの時と同じです。Unity アプリが立ち上がり、

ゲームが始まります!!

このあとは
今回は、Unity から Windows アプリをビルドし、Visual Studio で実行するまでの流れをご覧いただきました。次回は、もう少し詳しく、ビルドで生成されたソリューションの中身やデバッグの流れについてご紹介していきます。
関連リソース
Unity 開発者のための Windows ストア概要 - Yuta Watanabe's Blog
Unity で Windows アプリを開発する環境を整える - Yuta Watanabe's Blog
- Unity Asset Store
- 2D Platformer
- Windows と Windows Phone を対象とするユニバーサル Windows アプリの構築 ( MSDN )
- Windows ストア アプリ デバッグとテスト ( MSDN )
- Windows Phone アプリのテスト ( MSDN )
- Windowws Store Apps: Getting Started ( Unity Documentation )
- Windows Store Apps : Project Types ( Unity Documentation )
- Windows Store Apps: Deployment ( Unity Documentation )
Unity で Windows アプリを開発する環境を整える
こんにちは。
マイクロソフトの渡辺です。
前回の、「 Unity 開発者のための Windows ストア 概要 」ではUnity で Windows アプリを開発する際に押さえておきたい概要をご紹介しました。開発者支援プログラム等のご案内もありますので、ぜひ一度ご覧ください。
今回は、Unity で Windows ストア アプリをビルドする準備として必要な環境や情報をご紹介していきます。
必要な環境
最新の Windows アプリを Unity でビルドするために必要な環境は下記になります。
- Unity 4.5.3 以上
- Windows 8.1
- Visual Studio 2013 Update 2 以上
- Windows & Windows Phone の SDK
- 開発者アカウント ( マイクロソフト アカウント )
Unity 4.5.3 以上
最新の Unity をダウンロードしましょう。Unity 無料バージョンおよびUnity Pro に関わらず、すべての Unity ユーザは、Windows ストア および Windows Phone アプリをビルド/公開できます! ( 必要なアドオンは、どちらのバージョンにも含まれています )。
Windows 8.1
この機会にぜひ Windows 8.1 ライセンスまたは PC のご購入をご検討ください。Windows 8.1 Enterprise の90日間の評価版で開発環境を構築いただくことも出来ます。
スタートアップの方々は、BizSpark プログラムを利用して、Windows 8.1 ライセンスを含むソフトウェアを開発用途で無料ダウンロードしていただけます。
Windows マシンは持っていない!という方は、「 Mac への Windows および開発者ツールのインストール 」にて環境構築の方法をご覧いただけます。
Visual Studio 2013 Update 2 以上
無料の Visual Studio Express 2013 for Windowsで開発することもできますし、学生の方は DreamSpark プログラムから Visual Studio Professional 、スタートアップの方は BizSpark プログラムから Visual Studio Ultimate エディションをダウンロードできます。
その他の方々も、90日無償評価版がありますので、ぜひ最新の上位エディションをお試しください。
また、Professional 版以上では、拡張機能 Visual Studio Tools for Unity を利用すると、Visual Studio で Unity アプリの開発 & デバッグを行うこともできます。詳しくは、下記記事をご覧ください。
Visual Studio Tools for Unity ( UnityVS ) で Unity 開発/デバッグの生産性を上げよう - Yuta Watanabe's Blog
Windows & Windows Phone のSDK
アプリ開発に必要な SDK は、Visual Studio と一緒にインストールされますので、特に追加の作業は必要ありません。
開発者用ライセンス & アカウント ( マイクロソフト アカウント )
Windows アプリを開発し、公開する過程でマイクロソフト アカウントは必ず必要になりますので、あらかじめ取得しておきましょう ( 新しくユーザ名を取得することもできますし、既存のアドレスで取得することもできます )。
このマイクロソフト アカウントに紐づけて、
- 開発者ライセンス
- 開発者アカウント
の 2つ取得をすることになります。
開発者用ライセンスは、ストアに提出する前の開発中のアプリをインストールしてテストするために必要です。無料で取得でき、Visual Studio 2013 を起動したタイミングで取得を促されますので、マイクロソフト アカウントでログインして進んでください。
また、開発者アカウントはアプリの申請/公開に必要なアカウントです。個人用または会社用を選んで取得します。開発者アカウントに使うマイクロソフトアカウントは、取得後変更できませんので、特に会社用の場合は開発者アカウント用のマイクロソフトアカウントを取得するようにしましょう。
年間の更新料は無料になりました。初期の取得費用も開発者支援プログラムで無料になりますので、ぜひご活用ください。
技術情報リソース
Unity で Windows アプリの開発を行うにあたって活用できる、技術情報リソースをご紹介します。今後適宜ご参照ください。
このあとは
今回は、Unity で Windows ストア & Windows Phone アプリを開発していく上で必要となる環境をご紹介しました。次回は、整えた環境で実際にアプリをビルドする流れを見ていきたいと思います。
関連リソース
Unity 開発者のための Windows ストア概要 - Yuta Watanabe's Blog
Visual Studio Tools for Unity ( UnityVS ) で Unity 開発/デバッグの生産性を上げよう - Yuta Watanabe's Blog
- Windows デベロッパーセンター
- Unity で作る Windows ストア アプリ
- Unity Documentation : Windows Store Apps
- Windows & Windows Phone ストア アプリ ダウンロード数トレンド ( 2014年9月 )
- Windows 8.1 Enterprise の90日間の評価版
- BizSpark プログラム ( スタートアップ向け )
- DreamSpark プログラム ( 学生向け )
- Visual Studio のダウンロード
- 開発者アカウントの取得


