2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Unity】UnityEngine.dll を使用した DLL の作成方法

Last updated at Posted at 2024-04-23

はじめに

この記事では 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」を押してプロジェクトを新規作成します。

TSUBASAMUSU.png

手順2

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

TSUBASAMUSU.png

手順3

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

TSUBASAMUSU.png

手順4

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

TSUBASAMUSU.png

参照の追加

手順5

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

TSUBASAMUSU.png

手順6

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

TSUBASAMUSU.png

手順7

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

TSUBASAMUSU.png

手順8

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

TSUBASAMUSU.png

DLL の生成

手順9

適当なファイルを作成してコードを記述し、上の「Build > Build Solution」を押すか「Ctrl+Shift+B」でプロジェクトをビルドします。

SampleClass.cs
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(); するだけです。

TSUBASAMUSU.png

最後に

参考記事

株式会社ModelingXについて

image.png

富山県を拠点とするスタートアップ企業、ModelingXは、2022年4月に創業し、「テクノロジーで感動体験を提供する」というミッションを掲げています。当社が開発中の暮らし体験メタバース「MELIFE(ミライフ)」は、バーチャル住宅展示場や銀行相談、家具購入、婚活などができる「地域単位の新たな経済圏」を目指しています。

↓サービスサイトはこちらから↓

ModelingXはリモートワーク&フレックスタイム制を完備。
UnityやUEを共に探求する仲間を全国から募集しています。

↓企業詳細はこちら↓

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?