はじめに
この記事では UnityEngine.dll を使用して独自の DLL を作成する方法をザックリと解説します。
この記事での Unity のバージョンは 2022.3.25f1 です。
DLL とは「ダイナミックリンクライブラリ (Dynamic Link Library)」の略で日本語では「動的リンクライブラリ」といったりもします。
ファイルの拡張子は .dll です。
DLL はプラグインの概念に近いかもしれません。(諸説あり)
Unity でも Unreal Engine でも Roblox でも、あらゆるゲームエンジンや IDE にはプラグインという概念があり、とあるプラグインを導入すると自分のプロジェクトのプログラムからそのプラグインが提供している API にアクセスできます。
他者が提供しているプラグインを利用する以外にも、とあるプロジェクトで作った便利な関数をプラグインにまとめて他のプロジェクトでそれを使い回すといったことも可能です。
オープンソースなプラグインならそのソースコードを誰でも閲覧できますが、DLL 化すると完全に本来のままのソースコードを閲覧することはできなくなるので「プラグイン経由で API は提供したいけどソースコードは見せたくない!」という場合には DLL を使用するのが好ましいかと思います。
そして UnityEngine.dll は Unity のゲームエンジンが提供する主要な C# API を含む DLL です。
例えば「Hello World」とログに表示する処理を作りたいときは Unity から Visual Studio や Visual Studio Code、Rider などの IDE を開いて Debug.Log("Hello World");
と書くのが一般的ですが、UnityEngine.dll を使用すると Unity を一切開くことなく Visual Studio などの IDE で Debug.Log("Hello World");
と記述してコンパイルし、DLL を作成してそれを複数の Unity プロジェクトで使い回すことができます。
手順
プロジェクトの作成
手順1
早速手順を解説します。
今回は Visual Studio を使用します。
まずは Visual Studio を開き、「Create a new project」を押してプロジェクトを新規作成します。

手順2
C# 用の「Class Library」のテンプレートを選択して右下の「Next」を押します。

手順3
Project name や Location などを設定して右下の「Next」を押します。

手順4
Framework を選択して右下の「Create」を押します。
作成した DLL を Unity のプロジェクトで使用したい場合は「.NET Standard 2.1」を選択すると良いかと思います。
これでプロジェクトの作成は完了しました。

参照の追加
手順5
次はこのプロジェクトに参照を追加します。
Unity Hub を開いて左の「インストール」から任意のバージョンのエディタの「設定」を押して「エクスプローラーで表示」を選択します。

手順6
Unity のエンジンが格納されているフォルダが開くので「Data/Managed/UnityEngine.dll」をコピーして先ほど作成した Visual Studio のプロジェクトのルートディレクトリにペーストします。
Unity のエディタ機能にアクセスしたい場合は必要に応じて UnityEditor.dll もコピペします。

手順7
Visual Studio に戻って「Solution Explorer > Dependencies」で右クリックし、「Add Project Reference...」を選択します。

手順8
左の Browse タブを開いて右下の「Browse...」を押します。
ダイアログが開いたら先ほどコピペした UnityEngine.dll を追加してチェックが入っていることを確認して右下の「OK」を押します。
これでプロジェクトが UnityEngine.dll を参照するようになりました。

DLL の生成
手順9
適当なファイルを作成してコードを記述し、上の「Build > Build Solution」を押すか「Ctrl+Shift+B」でプロジェクトをビルドします。
using UnityEngine;
namespace SampleClassLibrary
{
public class SampleClass
{
public static void LogHelloWorld()
{
Debug.Log("Hello World");
}
}
}
手順11
ビルドが完了したら Visual Studio のプロジェクトの中の「bin/Debug/{フレームワーク名}」に {プロジェクト名}.dll が生成されていることを確認します。
Unity でこの DLL を使用する際は Unity プロジェクトの Assets フォルダの中にこの .dll ファイルをコピペして今回の例だと任意のスクリプトで using SampleClassLibrary;
して SampleClass.LogHelloWorld();
するだけです。

最後に
参考記事
株式会社ModelingXについて

富山県を拠点とするスタートアップ企業、ModelingXは、2022年4月に創業し、「テクノロジーで感動体験を提供する」というミッションを掲げています。当社が開発中の暮らし体験メタバース「MELIFE(ミライフ)」は、バーチャル住宅展示場や銀行相談、家具購入、婚活などができる「地域単位の新たな経済圏」を目指しています。
↓サービスサイトはこちらから↓
ModelingXはリモートワーク&フレックスタイム制を完備。
UnityやUEを共に探求する仲間を全国から募集しています。
↓企業詳細はこちら↓