はじめに
Unityについて調べていたら、Managed plug-insという機能を見つけました。
C#で作ったライブラリをUnityに取り込んで利用できるようです。
また、以下のようにHoloLens(初代)で利用している記事もありました。
satoshi-maemoto.hatenablog.com
これをHoloLens 2でも使えるか気になったので、本記事で簡単に検証してみようと思います。
環境
Unity 2020.3.26f1
MRTK 2.7.3
Visual Studio Professional 2022 version 17.0.6
手順
まず最初にライブラリを作ります。
Visual Studioで新しいプロジェクトを作成します。利用するテンプレートは「クラスライブラリ」です。
プロジェクト名、保存場所、ソリューション名を決めた後にフレームワークを選択する画面が出てくるので、「.NET Standard 2.0」を選択してプロジェクトを作成します。
プロジェクトができたら実際に処理を行うクラスを作成します。今回は足し算するだけのものを作りました。
namespace ClassLibrary1 { public class Class1 { public int AddNumbers(int num1, int num2) { return num1 + num2; } } }
ソリューションをビルドをすると<project folder>/bin/Debug/netstandard2.0/
フォルダ内にDLLファイルが作成されています。
次にUnityのプロジェクトを作り、Assetフォルダの配下に先ほど作成したDLLファイルを配置します。これでライブラリをUnityから利用できるようになります。
Unityでの動作確認用に以下のようなスクリプトを作ります。
using ClassLibrary1; //ライブラリのnamespace using UnityEngine; public class testScript : MonoBehaviour { Class1 lib; private void Start() { lib = new Class1(); //利用するクラスのインスタンス生成 } public void Add() { //メソッドの呼び出し var num = lib.AddNumbers(1, 2); //以下、アプリのUIに結果を表示する処理を書く } }
あとはボタンを押すなどしてAdd
メソッドを呼び出してあげれば準備完了です。実行すると「3」と表示されるはずです。
Unityエディタ上で動きました。
HoloLen 2実機でも動きました。
感想
C#で行う処理をUnity以外(WEBアプリなど)で使いたい場合にManaged plug-insを使うと効率的に開発できそうですね。
あとはテストもやりやすそうだなと思いました。