我正在使用Unity的最新版本:2019.3.14f1
。
在我的项目中,我需要引用一个外部DLL。按照手册中建议的步骤,我基本上已将DLL作为资产的一部分添加。Unity自动更新C#项目引用以包含该DLL,因此最后一切正常。
但是,现在我需要将该DLL包含在我的存储库中作为更改的一部分。所以我需要提交它。
myproj
|--Scenes/
|--Assets/
|--MyAssembly.dll
但是那并不是最好的选择。有办法避免这种情况吗? Unity可以与软件包管理器(例如NuGet或NPM)交互吗? Visual Studio允许使用NuGet包,有没有办法告诉Unity创建一个引用特定的NuGet包集的C#项目?
Unity是否可以与NuManager或NPM之类的软件包管理器对接?
是的!这正是Unity的Package Manager用于的目的。
基本上,当您创建项目时,会发现自动生成的
YOURPROJECT/Packages/manifest.json
您在哪里找到项目依赖项,例如,
"com.unity.modules.physics": "1.0.0"
引用其NPM服务器。
链接的API当然会更详细,并且可能会得到更好的解释;)
但是总之:您也可以使用它来托管并添加自己的Custom Packages作为依赖项!
有多种方法。通常您会选择[]
→放在YOURPROJECT/Packages/YOURPACKAGE
→可以位于本地驱动器上的任何位置,甚至可以位于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" }