【Unity】C# クラスライブラリをUnityプロジェクトで参照しデバッグする

C# で作成したクラスライブラリを、Unityプロジェクトで参照し、デバッグする方法について書きます。

クラスライブラリで作成したdll、pdb ファイルをUnityプロジェクトのAssets/Plugins に置くことで、デバッグができます。

開発環境
  • Windows10 Home 64bit
  • VisualStudio Community 2019 Version 16.11.2
  • .Net FrameWork 4.8
  • Unity 2020.3.17f1(LTS)
  • クラスライブラリ .NET Standard2.0
目次

参照、デバッグの設定

ソリューションの構成

以下のソリューション構成で解説していきます。

Assembly-CSharp : Unityプロジェクト

  • UnitySample.cs : Unityからクラスライブラリを参照するスクリプト

SampleClassLibrary : クラスライブラリ

  • Class1.cs : Unityから参照されるクラスライブラリ

参照、デバッグの設定

クラスライブラリを作成するとdll ファイルが作成されます。そのファイルを Assets/Plugins に置くことでUnityプロジェクトから参照できます

また、クラスライブラリの内部にステップインでデバッグするためには、Debugビルドで生成されるpdbファイルも同じ場所に置く必要があります

毎回ビルド後に手動でコピーするのは手間ですし、忘れるかもしれません。なので、ビルド後に自動でコピーする設定をします。

まずは、Assets フォルダ内にPlugins フォルダを手動で作成します。既に作成されているなら、不要です。

ソリューションエクスプローラーでクラスライブラリを右クリック→プロパティを選択します。

ビルド後イベント→ビルド後イベントのコマンドラインで、以下を入力します。

if $(ConfigurationName) == Debug copy $(TargetDir)FN3dS.dll $(SolutionDir)Assets\Plugins
if $(ConfigurationName) == Debug copy $(TargetDir)FN3dS.pdb $(SolutionDir)Assets\Plugins

この設定をした後、クラスライブラリをビルドします。ビルド後、dllファイルとpdbファイルがAssets/Plugins にコピーされます。

参照、デバックの設定確認

設定ができているか確認します。

参照されるクラスライブラリ

まずは、参照されるクラスライブラリを作成します。

using System;

namespace SampleClassLibrary
{
    public class Class1
    {
        public int GetMaxValue( int a, int b )
        {
            return Math.Max(a, b);
        }
    }
}

2つの引数のうち大きい値を返すという関数です。この関数をUnity から呼び出します。

作成後、ビルドします。dllファイルとpdbファイルがAssets/Plugins にコピーされているはずです。

参照するスクリプト

参照スクリプトです。

using UnityEngine;
using SampleClassLibrary;

public class UnitySample : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        Class1 class1 = new Class1();
        int max = class1.GetMaxValue(5, 10);
    }

    // Update is called once per frame
    void Update()
    {

    }
}

デバッグしてみる

実際にデバッグで参照できているか確認します。

Unityで、Sampleという名前の空のGameObjectを作成し、先ほど作成したUnitySample.cs をコンポーネントに追加します。

Visual Studio でUnityにアタッチし、Unityでプレイモードに遷移し、デバック開始します。

UnitySampleクラスのStart関数でブレークポイントを設定します。

↑の状態でステップインすると、

クラスライブラリのデバッグができました。pdbファイルをコピーしていなければ、これはできません

ライブラリも正常に動作しています。判定結果が正しいです。

まとめ

C# で作成したクラスライブラリを、Unityプロジェクトで参照し、デバッグする方法について書きました。

クラスライブラリで生成される、dll、pdb ファイルをAssets/Plugins に置くことでUnityプロジェクトから参照できます。デバッグもできるようになります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次