本节说明如何访问或引用包中定义的资源:
注意:Package Manager 不支持包中的流媒体资源。请改用 Addressables 包。
要引用在包内定义的资源,请使用以下路径方案:
"Packages/<package-name>/..."
资源包内资源的路径以 Packages/ 和包名称(而不是显示名称)开头。
相比之下,应使用以下方案访问项目资源:
"Assets/..."
例如,在 com.unity.images-library 包的包子文件夹 /Example/Images 中,文件 image.png 的路径是:
"Packages/com.unity.images-library/Example/Images/image.png"
要获取 Packages 文件夹中的项的绝对路径,可以使用部分路径作为 Path.GetFullPath() 方法的参数。有关示例,请参阅解析绝对路径。
要加载存储在包中的纹理,请使用 LoadAssetAtPath 方法,该方法需要 using UnityEditor 指令。指定遵循 Packages/<package-name>/ 路径方案的路径,如以下示例所示:
using UnityEditor;
// ...
Texture2D texture = (Texture2D)AssetDatabase.LoadAssetAtPath("Packages/com.unity.images-library/Example/Images/image.png", typeof(Texture2D));
要获取打包资源的绝对路径,请使用 Path.GetFullPath() 方法,该方法需要 using System.IO 指令。例如:
using System.IO;
// ...
string absolute = Path.GetFullPath("Packages/com.unity.images-library/Example/Images/image.png");