Version: Unity 6.0 (6000.0)
言語 : 日本語
ソースジェネレータを作成して使用する
Additional files for Roslyn analyzers and source generators

既存のアナライザーまたはソースジェネレーターをインストールして使用する

この例では ErrorProne.NET.CoreAnalyzers ライブラリを使用して、NuGet からコードアナライザーまたはソースジェネレータをインストールする方法を説明します。

  1. Download package ボタンをクリックして、ライブラリを .zip ファイルとしてダウンロードします。
  2. .zip ファイルのコンテンツを抽出します。
  3. 抽出したフォルダー内で、アナライザーを含む .dll ファイルを探します。この例では、errorprone.net.coreanalyzers<version-number>\analyzers\dotnet\cs に移動します。必要なファイルは、このフォルダーにある ErrorProne.NET.Core.dllErrorProne.Net.CoreAnalyzers.dllRuntimeContracts.dll という名前のファイルです。
  4. Unity プロジェクトの Assets フォルダーか、Assets フォルダー内にネストされている任意のフォルダーに、それらのファイルを移動します。それには、Assets > Import new asset に移動して 3 つの .dll ファイルをそれぞれ選択するか、デバイスのファイルブラウザーでプロジェクトの Assets フォルダーにコピーします。
  5. Unity の アセットブラウザー で .dll ファイルをクリックすると、Plugin Inspector ウィンドウが開きます。
  6. Plugin Inspector ウィンドウで、以下のように操作します。
    • 見出し Select platforms for plugin では、Any Platform を無効にします。
    • 見出し Include Platforms では、EditorStandalone を無効にします。
  7. Plugin Inspector ウィンドウの見出し Asset Labels では、青いラベルアイコンをクリックすると、Asset Labels サブメニューが開きます。
  8. RoslynAnalyzer という新しいラベルを作成して割り当てます。それには、Asset Labels サブメニューのテキスト入力ウィンドウに RoslynAnalyzer と入力し、Return を押します。このラベルは例と正確に一致する必要があり、大文字と小文字が区別されます。作成した最初のアナライザーのラベルは、Asset Labels サブメニューの使用可能なラベルのリストに表示されます。メニューでラベルの名前をクリックして、他のアナライザーに割り当てることができます。

Unity は RoslynAnalyzer ラベルを認識し、このラベルを持つアセットを Roslyn Analyzer またはソースジェネレータとして扱います。アナライザーにラベルが割り当てられると、Unity はアナライザーのスコープ内でスクリプトを再コンパイルし、アナライザーでのルールに従ってスクリプトのコードを分析します。アナライザーと同じアセンブリ定義内にあるスクリプトは、そのアナライザーのスコープに含まれます。Assets フォルダーのルートレベルにあるアナライザーの場合、Unity はプロジェクトのすべてのファイルがスコープに含まれると見なします。スコープの詳細は、アナライザースコープ を参照してください。

アナライザーが正しく動作することをテストするには、以下の例に従います。アナライザーが正しくインストールされていると、ErrorProne.NET アナライザーは例のコードを分析するときに警告を発します。

RethrowError.cs という名前の新しいスクリプトファイルを作成します。以下のコードをこのスクリプトにコピーし、ファイルを保存します。

using System;
using UnityEngine;

public class RethrowError : MonoBehaviour
{
    void Update()
    {
        try
        {
            DoSomethingInteresting();
        }
        catch (Exception e)
        {
            Debug.Log(e.Message);
            throw e;
        }
    }

    private void DoSomethingInteresting()
    {
        throw new System.NotImplementedException();
    }
}

ファイルを保存すると、スクリプトが再コンパイルされ、スクリプトのコードで適切なアナライザーが実行されます。ErrorProne.NET アナライザーが正しくインストールされると、Console ウィンドウに上記のコードに関する以下の警告が表示されます。

Assets\RethrowError.cs(14,23): warning EPC12: Suspicious exception handling: only e.Message is observed in exception block.

Assets\RethrowError.cs(15,19): warning ERP021: Incorrect exception propagation. Use throw; instead.

追加リソース

ソースジェネレータを作成して使用する
Additional files for Roslyn analyzers and source generators