簡體   English   中英

如何在 Unity 中包含預編譯的 .NET DLL

[英]How do you include pre-compiled .NET DLLs in Unity

悲慘的匯編參考

Unity 無法找到我的 DLL。 我有一個 DLL,我可以通過添加引用成功地在 Visual Studio 中加載它,但我仍然在 Unity 中遇到錯誤。

該DLL在.NETframework 4.6.1中,我嘗試將unity .NETframework升級到4.x,在visual studio安裝程序中安裝相關SDK,使用不同版本的unity(2022、2020、2019),都沒有好的。

我知道 DLL 可以工作,因為我已經能夠在統一之外編譯它,但我對這個項目的目標是讓它在沒有 hacky IPC 的情況下統一運行。

以下是我嘗試過但不起作用的其他一些參考: 無法添加對 dll 的參考.dll 文件無法訪問https://answers.unity.com/questions/458300/how-to-使用-a-external-dll.html

編輯1:所以我嘗試按照描述安排DLL,但這並不能解決問題。 我認為這一定是“兼容二進制”的問題,有沒有簡單的方法可以檢查?

更多詳細信息:我無法引用的 DLL 是另一個 DLL 的包裝器,在 C# 和 C++ 之間進行轉換,這可能是問題嗎?

請救救我堆棧溢出。

項目中的 DLL,.net DLL 引用 c++ DLL

要在 Unity(本機或 .NET)中使用插件/預編譯程序集,您必須將 .DLL(s) 放在Assets/Plugins文件夾中。 您可以將子文件夾用於 x86 和 x64。 我也喜歡包含供應商名稱。 告訴我更多......

例如

Assets
|--Plugins
   |--MickyD
      |--MickyD.SoM.Contracts.dll

假設它是兼容的二進制文件,Unity 將使插件的內容可用於您在 Unity 中定義的腳本。

您需要做的就是在 Unity 腳本的頂部添加適當的using

例如

using MickyD.SoM.Contracts;
using UnityEngine;
.
.
.
namespace MickyD.FleetDefender.Vehicles
{
    public class PlaneGadget
    {
        private Airspeed _airspeed; // Type defined in pre-compiled assembly
    }
}

如果您在項目中使用 ASMDEF 並覆蓋了包含,那么您可能需要引用 DLL。

也可以看看

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM