i-school - 知っておきたい豆知識

 Unityについて、知っておくと役に立つ知識をまとめておきます。順次増やすかもしれません。



UnityEditorの画面レイアウト


 Unityは開発しやすいようにEditor画面に配置するウインドウ(ビュー)類は、自由な位置に設置することが可能になっています。

 各ビューの名前の部分をドラッグするとビューを移動でき、配置したい位置に移動させるとレイアウトを自動的にとってくれますので
適宜なレイアウトになったらドロップすることでそこに配置が確定します。


<手順動画 ービューのレイアウトの変更ー>
動画ファイルへのリンク



 例えば、下記がレイアウトを変更した場合の画像です。




 こちらの画像を見て頂くとわかるように、GameビューとSceneビューとを同時にみれるようにして、ゲーム実行時でもSceneでの挙動確認が出来るようにしています。
またConsoleビューも頻繁に確認をする場所なので、常時表示できるようにインスペクターの下部に配置しています。

 ヒエラルキーとインスペクターとが隣に並んでいるので、ヒエラルキーのゲームオブジェクトをインスペクターにアサインする際のドラッグアンドドロップも近くて便利です。

 このように、自分で操作をしやすい環境を整えて作業をして頂く方が開発効率が格段に上がります。
なお万が一間違えて画面から消してしまった場合には、メニューの [Window] => [General] 内に基本的なビューがありますので、そちらをクリックすると再度表示されます。


<手順動画 ービューの再表示の方法ー>
動画ファイルへのリンク


 また、設定したレイアウトは名前をつけて保存しておくことができます。自分の好みのレイアウトが決まったら、保存しておきましょう。
次のプロジェクトが始まった際に、保存しておいたレイアウトに設定することで、前回までと同じレイアウトに切り替えることができます。


<レイアウトの保存 ーSave Layout...を選択ー>




Console(コンソール)の配置


 Consoleビューにはデバッグログやエラーリポートなど、実行時やコンパイル時において、処理の内容が情報として表示されます。

 初期位置は、Projectビューの隣にタブとして設置されています。ただし、このままですと実行のたびやエラーの発生のたびにタブを切り替えないとならなくなるため
いずれかのビューとセットで設置するようにして、タブを切り替えなくても画面上に常に表示している状態にしておく方がデバッグなどの利便性が高まります

<例> こちらはインスペクター・ビューの下にConsoleビューを配置した場合です。いつでも見えているため便利です。


 もしもConsoleビューが見当たらなかったり、間違えて閉じてしまった場合には、メニューの [Window] => [General] => [Console]で再度表示できます。

 自分の作業のしやすい環境を整えてから学習をした方が、デバッグだけではなく、学習そのものの効率が上がります
気を使うといいでしょう。


Consoleと見方


 画像のClear〜Error Pauseまでを解説します。



Clear 


 現在表示されているConsoleの内容をすべて破棄します。これのみスイッチになっておらず、押したときのみ動作します。


Collapse


 Console内に表示される情報のうち、同じ内容のものについては1行にまとめて表示する機能です。
画像のようにスイッチが入っている(白い背景に黒字の)場合、情報やエラーの右側に発生した回数がカウント表示されます。
スイッチが入っていない(灰色の背景に黒字の)場合には機能は動作しません。

適用時



Clear on Play


 画像のようにスイッチが入っている(白い背景に黒字の)場合、エディター実行時に自動的にClearが実行されます。
スイッチが入っていない(灰色の背景に黒字の)場合には機能は動作しません。


Clear on Build


 画像のようにスイッチが入っている(白い背景に黒字の)場合、ビルド実行時に自動的にClearが実行されます。
スイッチが入っていない(灰色の背景に黒字の)場合には機能は動作しません。


Error Pause


 画像のようにスイッチが入っている(白い背景に黒字の状態)場合、エディター実行時にエラー処理が実行された場合、自動的にエディターを一時停止する機能です。
 これにスイッチが入っていないと、エラーで止まっている場所を特定が難しくなります。この機能については、常にスイッチを入れておくことをおすすめします。

 Error Pauseの隣のEditorボタンは設定用です。特に操作をする必要はありません。


Consoleに表示されるアイコンと意味


 画像の順番に解説していきます。

Info(インフォ)



 デバッグログやUnityなどからのログ情報が表示されます。処理を追う際に利用できます。エラーなどではありません。画像はCollapse機能を使用している場合の表示です。


警告(ワーニング)



 問題のある処理について警告が表示されます。警告はエラーではないため、解消できるものであれば解消するように努めましょう。エラーでありません。画像はCollapse機能を使用している場合の表示です。


エラー



 問題のある処理についてエラーが表示されます。Error Pauseにスイッチが入っていると、この表示とともにゲームが一時停止します。画像はCollapse機能を使用している場合の表示です。
致命的な問題であるため、解消しない限りはゲームは正常に動作しません。必ず解消しましょう。
 

 上記のアイコン表示の数のトータル数がConsoleの右側に表示されます。



Reimport(リインポート)


 Unityには、Reimport(リインポート)という機能があります。
 Reimportとは、選択したアセットやファイル、プレファブなどを再度インポートする機能です。
インポートした際の設定はそのままで、ファイル自体を再度インポートしたい時に使用します。
 
 使用例としては、アセットストアなどからアセットをUnityにインポートした際、一部のプレファブが正常に表示されない場合(Unityピンクの状態)です。
対象のプレファブの上で右クリックをし、「Reimport」を選択します。これにより、インポートした設定はそのままで、もう一度インポートが行われます。
こちらでピンク状態を解消できることがあります。

 Reimport All という機能もありますが、こちらはProject内にあるすべてのアセットをインポートする機能です。(そのため、警告が出ます)
アセットが大量にあると、ものすごく時間がかかりますので注意してください。

 基本的には該当のファイルやプレファブなどを選択した上で行う方法がよいでしょう。


サマリー(summary)


 関数(メソッド)やクラスを作成し終わりましたら、必ずその関数やクラスの説明を書くように心がけましょう。書く場所は関数名、あるいはクラス名の1行上の部分です。
半角スラッシュを3個連続で記述すると説明用のコメントであるサマリー(概要)が自動的に記述されます


<手順動画 ーサマリーの作成方法ー>
動画ファイルへのリンク


 なお、関数の場合、その関数内の処理を書く前にサマリーを書いてしまうと、引数の情報などが反映されませんので気をつけましょう。



 作成されたサマリーはコメントできるように1行分の空きがありますので、そこに簡潔に処理の内容を書いておきます。
長くなる場合には2行以降にコメントを書くようにしましょう。

 引数がある場合、その引数1つずつにもコメントを残しておくことができます。(書くことが推奨されますが、変数名でわかるものなどには書かなくても問題ありません)

 サマリーを書いておくことで、この関数を呼び出す記述する際に参照情報としてフロート表示されるようになります。

<手順動画 ーヘルプのフロート表示ー>
動画ファイルへのリンク



 実際のサマリーの記述例です。

  /// <summary>
    /// 分岐選択肢ボタンの初期設定             // <= わかりやすく簡潔にコメントを残しましょう
    /// </summary>
    /// <param name="message">分岐のメッセージ</param>   // <= わかりやすく簡潔にコメントを残しましょう(変数名でわかるものなどには書かなくても問題ありません)
    /// <param name="no">分岐先となるシナリオデータの番号</param>
    /// <param name="director">GameDirector</param>
    public void InitializeBranchSelect(string message, int no, GameDirector director, int count) {

       // 処理

  }


TODO(トゥードゥー)機能 (タスク管理用)


 VisualSudioではタスクの管理用として、コメントの後に半角大文字で TODO、その後ろに半角スペースを空けることによって、このコメントをタスク一覧として表示させることが出来ます。
(なお小文字で todo でも認識されるようになりました。)

 これから実装したい処理や、あとで忘れずに行いたい処理がある場合には、処理を書く部分にTODOを記述しておきましょう。
下記のように記述できます(TODOのみで書く方が一般的です。どちらかに統一して記述しましょう。)

    public void OnClickStart(){
        // TODO 音楽を再生させる(半角スペースを忘れないこと。忘れると一覧に表示されません。)

        // todo 音楽を再生させる(半角スペースを忘れないこと。忘れると一覧に表示されません。)

        // TODO: タップできるようにする (半角コロンを用いる場合も半角スペースを忘れないこと)
  }

 TODOの記述された場所を一覧表示するには、VisualSudioのメニューより 表示 => タスク一覧 を選択してください。
別ウインドウでTODOが一覧表示され、それをクリックすることで記述したスクリプトへ移動できます。


<手順動画 ーTODOの一覧表示ー>
動画ファイルへのリンク

 TODOを利用することで残タスクの見える化が出来ます

 記述予定であった処理の書き漏れを防いだり、ある処理を実装した後に修正したい場所などに用意しておいたりと、様々な用途が考えられます
上手に活用しましょう。


Unity側のVisualStudioの設定方法


 UnityのバージョンによってはVisualStudioが標準のスクリプトエディターとして登録されていない場合があります。

 確認方法ですが、Unityの[Edit](編集) メニューから [Preferences](ユーザー設定) を選びます。
 つづいて、[Preferences](ユーザー設定) ダイアログで、 [External Tools](外部ツール) タブを選びます。

 この時点で[External Script Editor](外部スクリプト エディター) の部分に使用している Visual Studio が登録されていればすでに設定されている状態です。

 そうではない場合には、[External Script Editor](外部スクリプト エディター) ドロップダウン・リストから、目的のバージョンの Visual Studio が一覧にある場合はそれを選び、
ない場合は [Browse](参照) を選んで、対象となるバージョンの Visual Studio を探して設定します。

参考サイト
MicroSoft
クイックスタート: Unity を使ったクロスプラットフォーム開発のための Visual Studio の構成
 
 こちらの方法で Visual Studio を登録すると、using System.Diagnostics が自動的には追加されなくなり(Debug.Logを記述した際に自動的に追加されてしまう)、
using UnityEngine のDebug.Logと競合することがなくなります。

 また参照や入力の補助も表示されるようになるため、スクリプト記述の時間短縮やスペルミスを未然に防ぐことも出来ます

 この設定は1回行えば、すべてのプロジェクトに共通して適用されます。

 レイアウトの部分でもお話しましたように、開発環境を整えて作業の効率化を図りましょう。


コメント機能をVisualStudioのショートカットキーから利用する


 Visual Studio のメニュー内より ツール => オプション でウインドウが開きます。

 環境 メニュー 内にある キーボード を選択してください。




 検索窓に コメント で検索すると、上記の青いコメントに関する部分がみつかると思います。

 ここに書いてあるキーで、コメントアウトの設定・解除のショートカットが実行できます。
また、自分でショートカットキーを再度設定も可能です。

 コメントとコメントの解除は頻繁に利用しますので、こちらを覚えていただくと作業効率が上がります。
範囲内を一括でコメントしたり、コメントを解除したりと、デバッグ時に非常に便利です。


Visual Studio のマップモード設定


 Visual Studio の右端には画面スクロール用のスクロールバーがありますが、そちら縮小表示したコードを表示するための設定です。

参考サイト
MicroSoft
方法: スクロール バーのカスタマイズ

 こちらの設定を行うと、スクロールバーがマップモード表示になり、コードがより見やすくなります。


<動画>
動画ファイルへのリンク



 以上になります。