Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9541

VSCode+C#でDLLを作成してUnityで使用する方法

$
0
0
概要 VSCode+C#でDLLを作成してUnityで使用する 環境 Visual Studio Code: 1.60.1 (user setup)  C# for Visual Studio Code (powered by OmniSharp).:1.23.15 .Net Framework SDK:4.7.1 Unity:2020.3.15f2 DLLプロジェクトを作成 今回作るプロジェクトは「DLLTest」とする Unity側は「DLLTestUnity」とする 手順 ディレクトリを作成しVSCodeで開く VSCodeのターミナルから作成コマンドを打つ .csprojを設定する プログラムを書く ビルドしてDLLを作成する ディレクトリを作成しVSCodeで開く VSCodeのターミナルから作成コマンドを打つ dotnet new classlib -o DLLTest .csprojを設定する Unity用のDLLは「.Net4.x」または「.Net Standard 2.0」で作る必要がある Unity+VSCodeでブレークポイントを使うのに必要な.NetFrameworkSDK4.7.1が入っているので今回はそれを設定した プログラムを書く 「Class1.cs」を「DLLTest.cs」にリネームする 足し算を行うSumメソッドを作成する namespace DLLTest { public static class DLLTest { public static int Sum(int x, int y) { return x + y; } } } ビルドしてDLLを作成する ビルドコマンドを叩く publishではなくbuildにした場合は署名がなくてUnityで読み込めないので注意(はまった!) ※cdコマンドでDLLTestに移動してから次のコマンドを叩くこと Windowsは以下 dotnet publish -c Release -r win-x64 Macは以下(未検証) dotnet publish -c Release -r osx-x64 以下にDLLが作成されるのでUnityプロジェクトに持っていく bin\Release\net471\win-x64 Unity上で実行 手順 新規Unityプロジェクトを作成する DLLをAssets以下に配置 Test.csファイルを作成してMainCameraにつける 実行する 新規Unityプロジェクトを作成する DLLをAssets以下に配置 Test.csファイルを作成してMainCameraにつける Test.cs using UnityEngine; public class test : MonoBehaviour { void Start() { var x = DLLTest.DLLTest.Sum(10, 20); Debug.Log(x); } } 実行する DLL内にUnityのメソッドを入れる方法 手順 UnityEngine.dllをDLLプロジェクトにコピー .csprojでDLLの読み込み設定 プログラムを書く DLLを作成する UnityにDLLを上書き Test.csを書き換え 実行する UnityEngine.dllをDLLプロジェクトにコピー UnityEngine.dllをUnityから持ってきてDLLのプロジェクトにコピーする UnityHubからインストールした場合、以下の場所にある C:\Program Files\Unity\Hub\Editor\2020.3.15f2\Editor\Data\Managed コピー先 .csprojでDLLの読み込み設定 以下を追加 <ItemGroup> <Reference Include="UnityEngine"> <HintPath>UnityEngine.dll</HintPath> </Reference> </ItemGroup> プログラムを書く namespace DLLTest { public static class DLLTest { public static int Sum(int x, int y) { return x + y; } public static void ConsoleWrite(object message) { UnityEngine.Debug.Log(message); } } } DLLを作成する Windows dotnet publish -c Release -r win-x64 Mac dotnet publish -c Release -r osx-x64 UnityにDLLを上書き 作成したDLLTest.dllをUnityのAssets以下のDLLTest.dllに上書き Test.csを書き換え using UnityEngine; public class test : MonoBehaviour { void Start() { var x = DLLTest.DLLTest.Sum(10, 20); DLLTest.DLLTest.ConsoleWrite(x); } } 実行する

Viewing all articles
Browse latest Browse all 9541

Trending Articles