

To do this, it computes the set of packages that satisfies all direct and indirect dependencies in the project, starting with the project dependencies and recursively exploring each indirect dependency, collecting all the dependency information, then picking a set of packages that satisfies the dependency requirements without any conflict. Since most projects require more than one package in order to develop games and apps, the Package Manager has to evaluate all the requested package versions to retrieve from the registry (whether direct or indirect), and decide which among those package versions to install. However, a package can also have dependencies on other packages, which create indirect dependencies in any projects that require that package. More info See in Glossary of the project (a direct dependency). For projects, these are considered direct dependencies for packages, these are indirect, or transitive, dependencies. Projects and packages use the dependencies attribute in their manifests to define the set of packages they require. More info See in Glossary, Unity considers that package a dependency In the context of the Package Manager, a dependency is a specific package version (expressed in the form that a project or another package requires in order to work. The Package Manager uses it to configure many things, including a list of dependencies for that project, as well as any package repository to query for packages. This file must be available in the /Packages directory. When you add a package to a project manifest Each Unity project has a project manifest, which acts as an entry point for the Package Manager.
