Version: 2019.1 (switch to 2018.3 or 2017.4)
Scripting API for packages
Project manifest
Other Versions

Accessing package Assets

This section explains how to access or refer to AssetsAny media or data that can be used in your game or Project. An asset may come from a file created outside of Unity, such as a 3D model, an audio file or an image. You can also create some asset types in Unity, such as an Animator Controller, an Audio Mixer or a Render Texture. More info
See in Glossary
that are defined inside a package:

Referring to package paths

To refer to Assets that are defined inside a package, use this path scheme:

"Packages/<package-name>/..."

The path of the Asset inside a package begins with Packages/ and the package name (not the [display name](upm-manifestPkg.html#display name)).

By contrast, you access Project Assets using this scheme:

"Assets/..."

For example, the path for the file image.png in the package subfolder /Example/Images of the com.unity.images-library package is:

"Packages/com.unity.images-library/Example/Images/image.png"

Loading a Texture inside a package

To load a Texture stored inside a package, use the LoadAssetAtPath method and specify the path following the Packages/<package-name>/ path scheme as demonstrated in this example:

Texture2D texture = (Texture2D)AssetDatabase.LoadAssetAtPath("Packages/com.unity.images-library/Example/Images/image.png", typeof(Texture2D));

Resolving absolute paths

To get the absolute path of a packaged Asset, use the Path.GetFullPath() method. For example:

string absolute =   Path.GetFullPath("Packages/com.unity.images-library/Example/Images/image.png");

Did you find this page useful? Please give it a rating:

Scripting API for packages
Project manifest