[Unity・C#]ソースコードからクラス図を自動で作成する
クラス、メンバーの説明をまとめたクラス図をコードから作成するツールを使って作成します
コードが複雑になってくるとクラスのイメージを図で確認できた方がいいですね。また、その図からどのあたりをリファクタリングすべきかの糸口を掴めることもあります。更新が遅れるともういつの資料かもわからなくなります。
最新の資料は、コードそのものです
使うツール
ソースコードからクラス図を作成するツールです
クラスダイアグラム
VisualStudioの追加コンポーネントになります
標準ではインストールされないので、インストーラーから個別コンポーネントを追加します
インストーラー
インストーラーは別アプリケーションなのでWindowsアプリとして起動できます
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-03-7.16.36-1024x580.png)
個別コンポーネントでクラスデザイナーをインストール
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-03-7.15.16-1024x517.png)
実際の作成したもの
ClassDiagramSampleとしてプロジェクトを作成します
シーンの構成
プロジェクトウィンドウに新規フォルダを作成して、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)
{
}
}
クラスダイアグラムの表示
Unityの場合、スクリプトの新規作成・削除・移動で「クラスダイアグラムで表示」を再度選択します
これは、プロジェクト構成ファイルが更新されることによるVisual Studio側でのクラスダイアグラムの更新ができないためです。作成済みのスクリプト内容の変更は大丈夫です
もちろん、C#プログラムを純粋にVisualStudioで作成する場合は大丈夫です
ソリューションエクスプローラで、Assembly-CSharpを右クリックしメニューから選択します
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-03-7.55.11.png)
メンバーの表示
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-03-7.57.53.png)
クリックすると展開されます
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-03-7.58.06.png)
表示を詳細にします
メンバー形式変更以外にもさまざまなメニューがあります
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-03-8.07.43.png)
幅を適切なサイズにします
シェイブ幅の調整以外にもさまざまなメニューがあります
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-03-8.12.14.png)
幅が調整されたクラス図になりました
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-03-8.13.28.png)
メンバー情報の詳細
それぞれを選択すると詳細がプロパティウィンドウに表示されます
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-03-8.18.31-1.png)
カスタム属性があるメンバー例(SerializeField属性)
/// <summary>
/// ライフの最大値
/// </summary>
[SerializeField]
int maxLife;
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-03-8.29.40.png)
コード
クラスの詳細一覧
画面下には、クラスの詳細が表示されます
この値は変更、追加や削除ができます。ここでの更新は、コードに直接反映されます。またコード側での更新はここにも反映されます。つまりクラスダイヤグラムとコードは同期されていることになります
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-03-8.18.12.png)
メソッドの下向き三角(▼)をクリックすると展開されます
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-03-8.22.35.png)
インポートしたクラスを表示対象外にしたい時
自分で作成したスクリプト以外は表示されないようにしたい場合があります
アセットストアからインポートしたアセットもここに表示されるためです
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-03-7.52.46-1.png)
アセットストアのクラス図も表示されています
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-03-7.48.45-1024x248.png)
右クリックメニューから削除
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-03-8.42.55-1024x259.png)
作業のコツ
右上に固まっているところをすべて選択して左上に移動します
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-03-8.47.57-1024x511.png)
画面いっぱいに表示するようにします
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-03-8.49.16-1024x511.png)
拡大しましたので、作業がしやすくなりました
![](https://soft-rime.com/wp-content/uploads/2022/09/スクリーンショット-2022-09-03-8.49.52-1024x511.png)
ディスカッション
コメント一覧
まだ、コメントがありません