项目的 Packages 文件夹下出现的所有包都是嵌入在该项目中的。您可以通过多种方式创建嵌入式包:
Packages 文件夹中创建一个新包。Packages 文件夹。嵌入式包无需在项目清单中显示为依赖项。但是,如果嵌入了某个版本的已安装包,则项目清单仍会列出对原始已安装版本的依赖项。在这种情况下,磁盘上的包优先于列为依赖项的包版本,因此不需要从项目清单中删除它。例如,如果项目清单指定了对 com.unity.example 包版本 1.3.1 的依赖项,但是项目还具有带该名称的嵌入式包,则 Package Manager 将使用该嵌入式包(无论是否是其明显版本),而不是从注册表下载版本 1.3.1。
确保您跟踪嵌入式包的内容以及对其所做的任何更改。如果您的 Unity 项目在源代码控制下,则还应将该项目中嵌入的任何包添加到同一源代码控制下。
要嵌入新包,请在 Packages 文件夹下的一个文件夹中创建新包内容。有关更多信息,请按照创建自定义包的说明。
通常,您的新包会一直嵌入到您的项目中,直到您准备与其他用户共享以及在其他项目中对其进行测试。然后您可以将它发布到范围包注册表。
从注册表安装的包是不可变的,这意味着您无法对其进行编辑。如要编辑包,可通过将其复制到 Projects 文件夹,使其变为可变状态。这种包类型称为嵌入式包,它会覆盖包缓存中的内容。之后,您可以从 Project 文件夹中删除该嵌入式包的文件夹,Package Manager 将自动切换回不可变的缓存包。
在缓存中找到包文件夹的最可靠方法是直接在 Unity 编辑器中找到已安装的版本:
通过打开窗口 (Window) 菜单并选择常规 (General) > 项目 (Project) 来打开项目 (Project) 窗口。
从项目 (Project) 窗口中,找到要嵌入的已安装的包。
右键单击所选包的文件夹,然后选择在资源管理器中显示 (Show in Explorer) (Windows) 或在 Finder 中显示 (Reveal in Finder) (macOS)。该包的文件夹直接在文件浏览器中打开并使用 <package-name> 命名约定。
注意:如果要嵌入的包不在项目中,可使用文件浏览器或命令行并导航到正确的文件夹,直接从项目的包缓存 (<project>/Library/PackageCache) 中获取该包。但是,让 Editor 为您查找包会更加可靠,因为除了定位项目缓存中的包之外,它还可以定位从本地文件夹或 tarball 安装的包,以及已经嵌入的包。
复制包文件夹并将其直接粘贴到项目的 Packages 文件夹中。不要将其放在 Assets 文件夹中,因为 Package Manager 不会扫描该文件夹中的包。
如果您的项目已经在源代码管理之下,则将新嵌入的包添加到源代码管理。
要删除嵌入式包,使用文件浏览器或命令行在 Packages 文件夹中找到该包。可考虑备份嵌入式包的文件夹,否则对包所做的任何更改都将丢失。然后,从 Packages 文件夹中删除该包的文件夹。Package Manager 将自动还原为不可变的缓存包。