Version: 2023.1

AssetDatabase.GetDependencies

切换到手册
public static string[] GetDependencies (string pathName);
public static string[] GetDependencies (string pathName, bool recursive);

参数

pathName 需要依赖项的资源的路径。
recursive 控制此方法是否以递归方式检查并返回包括间接依赖关系在内的所有依赖关系(设置为 true 时),或是否仅返回直接依赖关系(设置为 false 时)。

返回

string[] 输入依赖的所有资源的路径。

描述

返回一个数组,其中包含作为指定 **pathName** 处资源的依赖关系的所有资源。

**注意:**GetDependencies() 获取其他资源所引用的资源。例如,一个场景可以包含许多附加了材质的 GameObjects。在此情况下,GetDependencies() 会返回材质资源的路径,而不是 GameObjects,因为这些不是磁盘上的资源。

如果 **recursive** 为 true,返回的列表也将包含输入路径本身。请注意,此函数返回输入资源所引用的所有资源;而在构建过程中不一定需要这些引用。


public static string[] GetDependencies (string[] pathNames);
public static string[] GetDependencies (string[] pathNames, bool recursive);

参数

pathNames 需要依赖项的资源的路径。
recursive 控制此方法是否以递归方式检查并返回包括间接依赖关系在内的所有依赖关系(设置为 true 时),或是否仅返回直接依赖关系(设置为 false 时)。

返回

string[] 输入依赖的所有资源的路径。

描述

返回一个资源路径数组,这些资源是所提供 **pathName** 的列表中所有资源的依赖关系。

**注意:**GetDependencies() 获取其他资源所引用的资源。例如,一个场景可以包含许多附加了材质的 GameObjects。在此情况下,GetDependencies() 会返回材质资源的路径,而不是 GameObjects,因为这些不是磁盘上的资源。

如果 **recursive** 为 true,返回的列表也将包含输入路径本身。请注意,此函数返回输入资源所引用的所有资源;而在构建过程中不一定需要这些引用。

using System.Text;
using UnityEditor;
using UnityEngine;

public class GetDependenciesExample : MonoBehaviour { [MenuItem("APIExamples/GetDependencies")] static void GetAllDependenciesForScenes() { var allScenes = AssetDatabase.FindAssets("t:Scene"); string[] allPaths = new string[allScenes.Length]; int curSceneIndex = 0;

foreach (var guid in allScenes) { var path = AssetDatabase.GUIDToAssetPath(guid); allPaths[curSceneIndex] = path; ++curSceneIndex; }

var dependencies = AssetDatabase.GetDependencies(allPaths);

StringBuilder dependenciesString = new StringBuilder(); dependenciesString.AppendLine();

foreach (var curDependency in dependencies) { dependenciesString.Append(curDependency); dependenciesString.AppendLine(); }

Debug.Log("All dependencies for Scenes in Project: " + dependenciesString); } }