UnityスクリプトのXMLドキュメントコメント入門

1. はじめに

XMLドキュメントコメントは、コードの理解を助ける強力なツールです。クラスや関数の説明をコード内に記述することで、他の開発者(そして未来の自分)がコードを理解しやすくなります。

2. ドキュメントコメントの基本

2.1. 基本的な書き方

[code language="csharp"]
/// <summary>
/// テストです
/// </summary>
void Start()
{
    Debug.Log(1);
}
[/code]

重要なポイント:

  • クラスや関数の直上に///を入力
  • Visual Studioが自動的にテンプレートを生成
  • XMLタグを使用して説明を記述
[IMAGE_PLACEHOLDER: ドキュメントコメントの基本的な表示例]

Start()にカーソルを当てると該当のSummaryの内容を表示

3. パラメータの説明追加

3.1. 単一パラメータの場合

[code language="csharp"]
/// <summary>
/// テスト関数です
/// </summary>
/// <param name="value">数値を指定します</param>
public void TestFunction(int value)
{
    // 処理内容
}
[/code]

3.2. 複数パラメータの場合

[code language="csharp"]
/// <summary>
/// 複数のパラメータを使用するテスト関数です
/// </summary>
/// <param name="value1">1番目の数値</param>
/// <param name="value2">2番目の数値</param>
/// <param name="text">表示するテキスト</param>
public void MultiParamFunction(int value1, int value2, string text)
{
    // 処理内容
}
[/code]

4. ドキュメントコメントの表示

4.1. 表示のタイミング

  • 関数名にマウスカーソルを合わせたとき
  • パラメータの入力時
  • コードの補完候補表示時
[IMAGE_PLACEHOLDER: ドキュメントコメントの表示例とマウスオーバー時の挙動]

4.2. パラメータヘルプの表示

  • 関数呼び出し時に各パラメータの説明が表示
  • カーソル位置に対応するパラメータの説明がハイライト表示

5. よく使用されるXMLタグ

[code language="csharp"]
/// <summary>
/// クラスや関数の概要説明
/// </summary>
/// <param name="paramName">パラメータの説明</param>
/// <returns>戻り値の説明</returns>
/// <remarks>
/// 詳細な説明や補足事項
/// </remarks>
/// <example>
/// 使用例のコードなど
/// </example>
[/code]

5.1. 主なタグの説明

  • <summary>: 概要説明
  • <param>: パラメータの説明
  • <returns>: 戻り値の説明
  • <remarks>: 補足説明
  • <example>: 使用例

6. ベストプラクティス

6.1. 効果的なドキュメント作成のポイント

  1. 簡潔で分かりやすい説明を心がける
  2. パラメータの役割を明確に説明
  3. 特殊な使用条件がある場合は必ず記載
  4. 戻り値がある場合は値の意味を説明

6.2. 記述例

[code language="csharp"]
/// <summary>
/// プレイヤーの体力を回復します
/// </summary>
/// <param name="amount">回復量(0以上の整数)</param>
/// <returns>実際に回復した量</returns>
/// <remarks>
/// 最大体力を超えて回復することはできません。
/// </remarks>
public int Heal(int amount)
{
    // 処理内容
}
[/code]

7. まとめ

XMLドキュメントコメントを活用することで:

  • コードの意図が明確になる
  • チーム開発が円滑になる
  • 後からコードを見返す際の理解が容易になる

次回は、より高度なドキュメントコメントの使用方法や、自動ドキュメント生成ツールとの連携について解説していく予定です。

コメント

タイトルとURLをコピーしました