[Unity・C#]ソースコードからドキュメントを自動で作成する
クラス、メンバーの説明をまとめた資料をコードから作成するツールを使って自動的に設計資料を作成します
設計資料を残す必要があるケース
コードが複雑になってくると説明資料があった方がいいですね。また、その資料からどのあたりをリファクタリングすべきかの糸口を掴めることもあります。ただ、設計、コーディング前にしっかり作り込むと更新があった場合にこの資料の更新作業も大きな負担になってきます。更新が遅れるともういつの資料かもわからなくなります。
まとめると、
- 提出物に必要とされる
- チームで開発している
- 設計が複雑でコード分析が困難
- メソッドの使い方が知れればいい
などが挙げられますが、最新の資料は、コードそのものなので、都度手作業では負荷が大きいですね
使うツール
ブラウザでドキュメントを表示できるツールとしてDoxygenを使っていきます
Doxygen
次のページから、ダウンロードしましょう
Windows、Mac、Linuxがありますが、このページにアクセスするOSによって、自動的にそれぞれのOS向けがダウンロードされます
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-05-8.22.54-1024x546.png)
Macの場合
ダウンロードしたファイルを解凍(ダブルクリック)して実行ファイルを作成します
Ctrlを押しながら開くを選択して進めてください
Windowsの場合
インストーラを起動後、「次へ」で進めていってください
設定画面
実行すると設定画面が表示されます
それぞれ記入していくとテキストの設定ファイルが作成されます
画面はMacですがきほんWindowsでも同じです
Project設定(ドキュメント作成を1つのプロジェクトとして考えます)
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-02-9.44.27.png)
表示を日本語化したい場合
追記(2022/9/4)
画面はWindows版です
WizardタブからExpertタブに変更し、Projectを選択します
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-04-10.36.08-3-1024x991.png)
privateアクセス修飾子を表示でしたい場合
追記(2022/9/4)
画面はWindows版です
WizardタブからExperタブに変更し、Projectを選択します
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-04-10.37.16-1024x991.png)
詳細設定ドキュメント
Mode設定
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-02-10.08.29.png)
Output設定
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-02-10.13.09-2.png)
Diagram設定
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-02-10.16.59-2.png)
Run(実行)
Diagram設定後、Nextをクリックするとドキュメント作成実行画面になります
以降は、コードを新規作成/更新のあと、Run doxygenをクリックするだけで再度作成されます
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-02-10.45.30-1-1.png)
作成されたドキュメントをブラウザで確認
以降は、コードを新規作成/更新のあと、Show HTML outputunをクリックするだけで再度作成されます
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-02-10.45.30-1.png)
設定情報の保存
設定情報の保存
作成した設定情報は、保存したり読み出したりして使えます
実体はテキストファイルなのでメモ帳でも開くことができます
画面はWinodws版です
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-04-10.53.15-1024x972.png)
設定情報の読み出し
作成した設定情報は、読み出して使えます
実体はテキストファイルなのでメモ帳でも開くことができます
画面はWinodws版です
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-04-11.07.05.png)
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-04-11.07.59-1024x273.png)
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-04-10.54.02-1024x646.png)
次回、doxygenを起動したときにこのファイルが選択されるようにするには
今の設定情報を開始時に使うを選択します
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-05-8.36.36.png)
実際の作成したもの
DoxygenSampleとしてプロジェクトを作成します
シーンの構成
プロジェクトウィンドウに新規フォルダを作成して、1つのスクリプトを作成し保存します
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-02-11.05.40-1024x664.png)
PlayerControllerスクリプト
ドキュメントで自動作成されるコメントの書き方
今回作成するスクリプト
using UnityEngine;
/// <summary>
/// プレイヤーをコントロールします
/// </summary>
public class PlayerController : MonoBehaviour
{
/// <summary>
/// ライフの値
/// </summary>
public int Life;
/// <summary>
/// 力強さ
/// </summary>
public int Power;
/// <summary>
/// ライフの最大値
/// </summary>
[SerializeField]
int maxLife;
/// <summary>
/// 移動処理
/// </summary>
/// <param name="vector">移動ベクトル</param>
public void Move(Vector3 vector)
{
}
}
Doxygenの設定
プロジェクト設定
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-02-11.10.07-1-1024x631.png)
Mode設定
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-02-11.17.09-1024x631.png)
Output設定、Diagram設定
このまま使います
設定ファイルと作成されたドキュメントの保存場所
保存
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-02-12.26.44.png)
Unityプロジェクト内に保存されます(DoxygenのProject設定)
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-02-11.36.19.png)
作成されたドキュメントの確認
DiagramsメニューのRunメニューで、Show HTML outputボタンをクリックします
ブラウザが表示されます
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-02-11.43.12-1024x130.png)
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-02-11.45.59-1024x180.png)
リストの一覧
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-02-11.47.28-1024x180.png)
元はこれですね
/// <summary>
/// プレイヤーをコントロールします
/// </summary>
public class PlayerController : MonoBehaviour
リストからクラスを選択するとページが変わります
private変数は表示対象にならないです
ドキュメントには不要ですね
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-02-11.49.43-994x1024.png)
日本語表示の場合(Windows版)
追記(2022/9/4)
上記サンプルのコードではありません
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-04-10.47.53-1024x568.png)
ソースコードのxx行目と説明しているところをクリックすると次のページが表示されます
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-02-12.01.42-1024x334.png)
継承関係の場合
スクリプトに継承関係を作成しましょう
スクリプト
基本クラス(今回は抽象クラスにしています)
using UnityEngine;
/// <summary>
/// プレイヤーのベースとなるクラス
/// </summary>
public abstract class PlayerBase : MonoBehaviour
{
/// <summary>
/// 名前
/// </summary>
public string Name;
}
派生クラス
using UnityEngine;
/// <summary>
/// プレイヤーをコントロールします
/// </summary>
public class PlayerController : PlayerBase
{
/// <summary>
/// ライフの値
/// </summary>
public int Life;
/// <summary>
/// 力強さ
/// </summary>
public int Power;
/// <summary>
/// ライフの最大値
/// </summary>
[SerializeField]
int maxLife;
/// <summary>
/// 移動処理
/// </summary>
/// <param name="vector">移動ベクトル</param>
public void Move(Vector3 vector)
{
}
}
ドキュメント表示
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-02-12.10.22-1024x673.png)
開発、デバックの時のおすすめ設定
詳細な情報が表示される設定になります
開発中のプロジェクトフォルダにコピーして、次の項目を変更して使いましょう
デバッグ用設定
変更箇所
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-05-9.10.52-1024x955.png)
Gitで管理している場合
.ignoreに次を追加します
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-06-19.44.11-1024x557.png)
ディスカッション
コメント一覧
まだ、コメントがありません