Any package that appears under your project’s Packages
folder is embedded in that project. You can create an embedded package in several ways:
Packages
文件夹中创建一个新包。Packages
folder.Embedded packages don’t need to appear in the project manifest as a dependency. However, if you embedded a version of an installed package, your project manifest still lists the dependency on the original installed version. In that case, the package on disk takes priority over the version of the package listed as a dependency, so it doesn’t need to be removed from the project manifest. For example, if the project manifest specifies a dependency on version 1.3.1 of the com.unity.example
package but the project also has an embedded package with that name, the Package Manager uses the embedded package, regardless of its apparent version, instead of downloading version 1.3.1 from the registry.
确保您跟踪嵌入式包的内容以及对其所做的任何更改。如果您的 Unity 项目在源代码控制下,则还应将该项目中嵌入的任何包添加到同一源代码控制下。
要嵌入新包,请在 Packages
文件夹下的一个文件夹中创建新包内容。有关更多信息,请按照创建自定义包的说明。
通常,您的新包会一直嵌入到您的项目中,直到您准备与其他用户共享以及在其他项目中对其进行测试。然后您可以将它发布到范围包注册表。
A package installed from a registry is immutable, which means you can’t edit it. If you want to edit a package, you can make it mutable by copying it to your Projects
folder. This package type is called an embedded package, and it overrides what’s in your package cache. Later, you can delete that embedded package’s folder from the Project
folder, and the Package Manager will automatically change to the immutable, cached package.
在缓存中找到包文件夹的最可靠方法是直接在 Unity 编辑器中找到已安装的版本:
Open the Project window by opening the Window menu and selecting General > Project.
From the Project window, find the installed package you want to embed.
Right-click the folder of the selected package and select Show in Explorer (Windows) or Reveal in Finder (macOS). That package’s folder opens directly in a file browser and uses the <package-name>@<package-version>
naming convention.
Note: If the package you want to embed isn’t in your project, you can get it directly from your project’s package cache (<project>/Library/PackageCache
) by using your file browser or command line and navigating to the correct folder. However, it’s more reliable to let the Editor find it for you, because in addition to locating packages in the project cache, it also locates packages that are installed from a local folder or tarball, and packages that are already embedded.
Copy the package folder and paste it directly into your project’s Packages
folder. Don’t put it inside the Assets
folder, because the Package Manager doesn’t scan that folder for packages.
Remove the @<package-version>
part of the folder name.
Add the newly embedded package to source control if your project is already under source control.
Note: You can also find package folders under the global cache, but the global cache contains packages from all versions of the Unity Editor that have ever been installed on your system, so be careful to pick a version that’s compatible with your project’s Editor version.
If you want to delete the embedded package, use your file browser or command line to locate that package in your Packages
folder. Consider backing up the folder for the embedded package, otherwise you’ll lose any changes you made to the package. Then, delete the folder for that package from your Packages
folder. The Package Manager will automatically revert to the immutable, cached package.
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.