Visual Studio Tools for Unity を使用する
このセクションでは、Visual Studio Tools for Unity の統合と生産性の機能の使用法、および Unity 開発における Visual Studio デバッガーの使用法について取り上げます。
Visual Studio で Unity スクリプトを開く
Visual Studio を Unity の外部エディターとして設定した後、Unity エディターからスクリプトをダブルクリックすると、自動的に Visual Studio が起動するか Visual Studio に切り替わり、選択したスクリプトが開きます。
または、Unity の [アセット] > [C# プロジェクトを開く] メニューを選択することで、ソース エディターでスクリプトを開かずに Visual Studio を起動できます。
Unity のドキュメントへのアクセス
Visual Studio から簡単に Unity スクリプトに関するドキュメントにアクセスできます。 Visual Studio Tools for Unity は、ローカルの API ドキュメントを見つけられない場合、ドキュメントをオンラインで検索することを試みます。
- Visual Studio で、情報を必要とする Unity API を選択するか、その上にカーソルを置き、Ctrl+Alt+M キー、Ctrl+H キーの順に押します。
- キー バインドの代わりに [ヘルプ] > [Unity API リファレンス] メニューを使用することもできます。
- Visual Studio for Mac で、情報を必要とする Unity API を選択するか、その上にカーソルを置き、Cmd+' キーを押します。
- キー バインドの代わりに [ヘルプ] > [Unity API リファレンス] メニューを使用することもできます。
Unity API メッセージ用の IntelliSense
IntelliSense コード補完により、MonoBehaviour スクリプト内に Unity メッセージを簡単に実装でき、Unity API の学習に役立ちます。 Unity メッセージ用の IntelliSense を使うには:
MonoBehaviour
から派生するクラスの本体内部の新しい行にカーソルを置きます。Unity メッセージの名前 (
OnTriggerEnter
など) の入力を始めます。「ontri」まで入力すると、IntelliSense による候補の一覧が表示されます。
一覧での選択は、次の 3 つの方法で変更できます。
上および下方向キーを使います。
目的の項目をマウスでクリックします。
目的の項目の名前の入力を続けます。
IntelliSense で選んだ Unity メッセージと必要なパラメーターを挿入するには、次のようにします。
Tab キーを押します。
Enter キーを押します。
選んだ項目をダブルクリックします。
Unity MonoBehavior のスクリプト作成ウィザード
MonoBehavior ウィザードを使用して、Unity API のすべてのメソッドの一覧を表示し、空の定義を簡単に実装できます。 この機能は、Unity API で使用できる新機能をまだ学習しているときに、特に [メソッド コメントの生成] オプションが有効になっている場合に役に立ちます。
MonoBehavior ウィザードを使用して空の MonoBehavior メソッド定義を作成するには:
Visual Studio で、メソッドの挿入位置にカーソルを合わせてから、Ctrl+Shift+M キーを押して MonoBehavior ウィザードを起動します。 Visual Studio for Mac で、Cmd+Shift+M キーを押します。
[スクリプト メソッドの作成] ウィンドウで、追加する各メソッドの名前の横にあるチェック ボックスをオンにします。
[Framework のバージョン] ドロップダウンを使用して、目的のバージョンを選択します。
既定では、メソッドは、カーソルの位置に挿入されます。 または、[挿入ポイント] ドロップダウンの値を目的の位置に変更することで、クラス内に既に実装されている任意のメソッドの後ろに挿入することを選択できます。
選択したメソッドについてウィザードがコメントを生成するように指定するには、[メソッドのコメントを生成] チェック ボックスをオンにします。 これらのコメントは、メソッドを呼び出すタイミングやメソッドの全般的な役割について説明するためのものです。
[OK] ボタンを選択すると、ウィザードが終了し、コードにメソッドが挿入されます。
Unity プロジェクト エクスプローラー
Unity Project Explorer にはすべての Unity プロジェクト ファイルとディレクトリが、Unity エディターで表示されるのと同じ方法で表示されます。 これは、通常の Visual Studio ソリューション エクスプローラーを使用して Unity スクリプト間を移動するのとは異なります。そこではそれらが Visual Studio によって生成されるプロジェクトとソリューションに編成されます。
- Visual Studio のメイン メニューで、[表示] > [Unity プロジェクト エクスプローラー] を選択します。 キーボード ショートカット: Alt+Shift+E
- Visual Studio for Mac では、Unity プロジェクトを開くと、Solution Pad がこのように自動的に動作します。
Unity のデバッグ
Visual Studio Tools for Unity では、Visual Studio の強力なデバッガーを使用して、Unity プロジェクトのエディター スクリプトとゲーム スクリプトの両方をデバッグできます。
Unity エディターでのデバッグ
[デバッグ開始]
- [Unity にアタッチ] というラベルの付いた[再生] ボタンをクリックするか、キーボード ショートカット F5 を使用して、Visual Studio を Unity に接続します。
- [再生] ボタンをクリックするか、Command + Return キーまたは F5 キーを押して、Visual Studio を Unity に接続します。
- Unity に切り替えた後、[Play]\(再生\) ボタンをクリックしてエディターでゲームを実行します。
- Visual Studio に接続しながら Unity エディターでゲームを実行しているときに、ブレークポイントに達すると、ゲームの実行は一時停止し、ゲームがブレークポイントにヒットしたコード行が Visual Studio に表示されます。
デバッグの停止
Visual Studio の [停止] ボタンをクリックするか、キーボード ショートカット Shift + F5 を使用します。
Visual Studio for Mac で [停止] ボタンをクリックするか、Shift + Command + Return キーを押します。
Visual Studio でのデバッグの詳細については、Visual Studio デバッガーを初めて使用する場合のドキュメントを参照してください。
Unity にアタッチして再生
さらに使いやすくするために、[Unity にアタッチ] ボタンを [Unity にアタッチして再生] モードに変更できます。
[Unity にアタッチ] ボタンの横の小さな下向き矢印をクリックします。
ドロップダウン メニューから [Unity にアタッチして再生] を選択します。
[再生] ボタンのラベルが [Unity にアタッチして再生] になります。 これで、このボタンをクリックするか、キーボード ショートカット F5 を使用すると、Visual Studio デバッガーにアタッチされるだけでなく、自動的に Unity エディターに切り替わり、エディターでゲームが実行されます。
Visual Studio for Mac から直接 [Unity にアタッチして再生] 構成を選択すると、デバッグの開始と Unity エディターでの再生を 1 回の手順でを完了できます。
Note
[Unity にアタッチして再生] 構成を使用してデバッグを開始した場合、[停止] ボタンでも Unity エディターを停止できます。
Unity プレーヤー ビルドのデバッグ
Unity プレーヤーの開発ビルドを Visual Studio でデバッグできます。
Unity プレーヤーでのスクリプトのデバッグを有効にする
Unity で、[ファイル] > [ビルド設定] を選択して、ビルド設定を開きます。
[Build Settings]\(ビルド設定\) ウィンドウで、[Development Build]\(開発ビルド\) と [Script Debugging]\(スクリプトのデバッグ\) の各チェック ボックスをオンにします。
デバッガーをアタッチする Unity インスタンスを選択する
Visual Studio のメイン メニューで、[デバッグ] > [Unity デバッガーのアタッチ] を選択します。
[Unity のインスタンスの選択] ダイアログには、接続できる各 Unity インスタンスに関する情報が表示されます。
プロジェクト Unity のこのインスタンスで実行されている Unity プロジェクトの名前。
コンピューター Unity のこのインスタンスが実行されているコンピューターまたはデバイスの名前。
種類 Unity のこのインスタンスが Unity エディターの一部として実行されている場合はエディター。Unity のこのインスタンスがスタンドアロン プレーヤーの場合はプレーヤー。
ポート Unity のこのインスタンスが通信に使用している UDP ソケットのポート番号。
重要
Visual Studio Tools for Unity と Unity インスタンスは UDP ネットワーク ソケット上で通信を行っているため、それを許可するルールがファイアウォールで必要になる場合があります。 その場合は、プロンプトが表示され、VSTU と Unity が通信できるように、接続を承認する必要があります。
一覧に表示されない Unity インスタンスの選択
一覧に表示されていない既知の Unity プレーヤーが実行されている場合は、[Unity インスタンスの選択] ウィンドウの [入力 IP] ボタンを使用できます。 実行中の Unity プレーヤーの IP アドレスとポートを入力して、デバッガーを接続します。
IP とポートを毎回入力しなくても、簡単にプレーヤーのデバッグを続行できるように、[ツール] > [オプション] > [Tools For Unity] > [全般] メニューで [保存されたデバッグターゲットの使用] 設定を有効にします。
[Unity にアタッチ] ボタンのオプションとして、保存されたデバッグ ターゲットが Visual Studio に表示されます。
- Visual Studio for Mac の上部のメニューで、[実行] > [プロセスにアタッチ] を選択します。
- [プロセスにアタッチ] ダイアログの下部にある [デバッガー] ドロップダウン メニューで [Unity デバッガー] オプションを選択します。
- 一覧から Unity インスタンスを選択し、[アタッチ] ボタンをクリックします。
Unity プロジェクトの DLL のデバッグ
多くの Unity 開発者は、コード コンポーネントを外部 DLL として作成し、自分で開発した機能を他のプロジェクトと簡単に共有できるようにしています。 Visual Studio Tools for Unity では、これらの DLL のコードを Unity プロジェクトの他のコードとシームレスにデバッグできます。
Note
現時点で、Visual Studio Tools for Unity はマネージド DLL のみをサポートしています。 C++ で記述された DLL など、ネイティブ コード DLL のデバッグはサポートしていません。
ここで説明するシナリオは、ソース コードを持っていることを前提としている点に注意してください。つまり、自分のファースト パーティ コードを開発しているか再利用している場合、またはサード パーティ製のライブラリのソース コードを持っている場合に、作成する Unity プロジェクトを DLL として配置することを計画しているというケースです。 このシナリオは、ソース コードを持っていない DLL のデバッグには適用されません。
Unity プロジェクトで使用されるマネージド DLL プロジェクトをデバッグするには
Visual Studio Tools for Unity によって生成された Visual Studio のソリューションに、既存の DLL プロジェクトを追加します。 あまり一般的な方法ではありませんが、Unity プロジェクトのコード コンポーネントが含まれた新しいマネージド DLL プロジェクトを開始することもできます。その場合は、Visual Studio のソリューションに新しいマネージド DLL プロジェクトを代わりに追加します。
どちらの場合も Visual Studio Tools for Unity によってプロジェクト参照が保持されるため、プロジェクト ファイルとソリューション ファイルを再生成する必要がある場合でも、これらの手順は 1 回実行するだけ済みます。
DLL プロジェクトで、適切な Unity フレームワーク プロファイルを参照します。 Visual Studio では、DLL プロジェクトのプロパティで、[対象のフレームワーク] プロパティを、使用している Unity フレームワークのバージョンに設定します。 これは、Unity フル、Micro、または Web 基底クラス ライブラリなど、プロジェクトが対象とする API 互換性と一致する Unity 基底クラス ライブラリです。 この設定により、他のフレームワークまたは互換性レベルに存在するが、使用している Unity フレームワークのバージョンには存在しないフレームワーク メソッドを DLL が呼び出すことを防止できます。
Note
Unity のレガシ ランタイムを使用している場合にのみ、以下が必要です。 新しい Unity ランタイムを使用している場合は、このような専用の 3.5 プロファイルを使用する必要はありません。 お使いの Unity バージョンと互換性のある .NET 4.x プロファイルを使用してください。
DLL は、Unity プロジェクトのアセット フォルダーにコピーします。 Unity では、アセットとは、Unity のアプリと一緒にパッケージ化され、実行時に読み込めるように配置されるファイルのことです。 DLL は実行時にリンクされるので、DLL はアセットとして配置する必要があります。 アセットとして配置するには、Unity エディターは DLL を Unity プロジェクトの Assets フォルダー内に置く必要があります。 これを実行するには、次の 2 つの方法があります。
DLL プロジェクトのビルド設定を変更して、出力 DLL ファイルと PDB ファイルを出力フォルダーから Unity プロジェクトの Assets フォルダーにコピーするビルド後タスクを組み込みます。
DLL プロジェクトのビルド設定を変更して、出力フォルダーを自分の Unity プロジェクトの Assets フォルダーに設定します。 DLL ファイルと PDB ファイルの両方が Assets フォルダーに置かれます。
PDB ファイルには DLL のデバッグのシンボルや、DLL コードからソース コード フォームへのマップが格納されているため、デバッグには PDB ファイルが必要です。 レガシ ランタイムをターゲットにしている場合、Visual Studio Tools for Unity は、DLL と PDB からの情報を使用して DLL.MDB ファイルを作成します。このファイルは、レガシ Unity スクリプト エンジンが使用するデバッグ シンボル形式になっています。 新しいランタイムをターゲットにしていて、Portable-PDB を使用している場合、新しい Unity ランタイムは Portable-PDB をネイティブで使用できるため、Visual Studio Tools for Unity ではシンボル変換が試行されません。
PDB 生成の詳細については、ここを参照してください。 新しいランタイムをターゲットにしている場合は、Portable-PDB を適切に生成するために、[Debugging Information]\(デバッグ情報\) が [移植可能] に設定されていることを確認します。 レガシ ランタイムをターゲットにしている場合は、[全体] を使用する必要があります。
コードをデバッグします。 これで、Unity プロジェクトのソース コードと DLL ソース コードを一緒にしてデバッグできるようになりました。ブレークポイントやコードのステップ実行など、いつも使用しているデバッグ機能をすべて使用できます。
キーボード ショートカット
キーボード ショートカットを使用すると、Visual Studio Tools for Unity の機能に素早くアクセスできます。 使用できるショートカットの概要を次に示します。
コマンド | ショートカット | シュートカット コマンド名 |
---|---|---|
MonoBehavior ウィザードを開く | Ctrl+Shift+M | EditorContextMenus.CodeWindow.ImplementMonoBehaviours |
Unity プロジェクト エクスプローラーを開く | Alt+Shift+E | View.UnityProjectExplorer |
Unity のドキュメントにアクセスする | Ctrl+Alt+M、Ctrl+H | Help.UnityAPIReference |
Unity のデバッガー (プレーヤーまたはエディター) にアタッチする | 既定値なし | Debug.AttachUnityDebugger |
既定値では不便な場合は、ショートカット キーの組み合わせを変更できます。 変更方法については、「Visual Studio でのキーボード ショートカットの識別とカスタマイズ」を参照してください。
コマンド | ショートカット | シュートカット コマンド名 |
---|---|---|
MonoBehavior ウィザードを開く | Cmd+Shift+M | EditorContextMenus.CodeWindow.ImplementMonoBehaviours |
Unity のドキュメントにアクセスする | Cmd+' | Help.UnityAPIReference |
既定値では不便な場合は、ショートカット キーの組み合わせを変更できます。 変更方法については、「IDE のカスタマイズ」を参照してください。