如何在Unity项目中引用外部DLL而不将其提交到存储库中?

问题描述 投票:0回答:1

我正在使用Unity的最新版本:2019.3.14f1

在我的项目中,我需要引用一个外部DLL。按照手册中建议的步骤,我基本上已将DLL作为资产的一部分添加。Unity自动更新C#项目引用以包含该DLL,因此最后一切正常。

问题

但是,现在我需要将该DLL包含在我的存储库中作为更改的一部分。所以我需要提交它。

myproj
|--Scenes/
|--Assets/
   |--MyAssembly.dll

但是那并不是最好的选择。有办法避免这种情况吗? Unity可以与软件包管理器(例如NuGet或NPM)交互吗? Visual Studio允许使用NuGet包,有没有办法告诉Unity创建一个引用特定的NuGet包集的C#项目?

visual-studio unity3d package nuget
1个回答
0
投票

Unity是否可以与NuManager或NPM之类的软件包管理器对接?

是的!这正是Unity的Package Manager用于的目的。

基本上,当您创建项目时,会发现自动生成的

YOURPROJECT/Packages/manifest.json

您在哪里找到项目依赖项,例如,

"com.unity.modules.physics": "1.0.0"

引用其NPM服务器。


链接的API当然会更详细,并且可能会得到更好的解释;)

但是总之:您也可以使用它来托管并添加自己的Custom Packages作为依赖项!

有多种方法。通常您会选择[]

  • Embedded Package

    →放在YOURPROJECT/Packages/YOURPACKAGE

  • Local Package

  • →可以位于本地驱动器上的任何位置,甚至可以位于Internet上的URL上(例如,到GitHub存储库)]]

    您的情况听起来像是您想使用后者,并按照文档中的步骤进行操作(请在此处进行实际检查,因为还有许多其他链接和说明)

    如果要在Project文件夹之外创建自定义包,请按照以下说明进行操作:

  • 使用计算机的文件管理器(例如Windows File Explorer或macOS Finder),为您的程序包创建一个文件夹。

  • [如果您已经为包裹创建了一些内容,也可以使用现有位置。

  • 请确保文件夹结构的布局遵循Unity软件包的软件包布局约定。例如,如果您有Editor和Runtime库,请确保它们存储在Editor和Runtime文件夹下。

  • 打开您的首选文本编辑器,然后创建一个名为package.json的JSON文件。

  • 将其保存在软件包根文件夹下。

  • 填写软件包清单(package.json)文件中的所有必填和必填字段。

  • 在Unity中,创建一个新项目或打开一个现有项目。

  • 打开软件包窗口,并按照说明使用刚刚创建的package.json文件安装本地软件包。

  • 新包将出现在“包管理器”窗口和“项目”窗口中,您可以在其中查看和修改包内容。如果在“项目”窗口中选择package.json文件,则还可以直接在“检查器”窗口中修改其内容。

因此您的依赖关系例如看起来像

"dependencies": {
    ...
    "my_local_package": "file:C:/Users/johndoe/Packages/my_local_package"
}

或也使用相对路径

"dependencies": {
    ...
    "my_local_package": "file:../Packages/my_local_package"
}

甚至是git repo的外部URL

"dependencies": {
    ...
    "my_local_package": "https://someGitHost/projectrepo.git"
}
© www.soinside.com 2019 - 2024. All rights reserved.