1.0 KiB
1.0 KiB
HasCircularDependency
检测资源是否存在循环依赖。
方法签名
bool HasCircularDependency(ResourceGUID guid, Containers::Array<ResourceGUID>& outCycle) const;
详细描述
检测从指定资源出发是否存在循环依赖关系。算法使用深度优先搜索遍历依赖图,如果发现在同一条路径上访问同一个节点两次,则说明存在循环依赖。
当检测到循环时,outCycle 参数将被填充为从起点到循环点的路径(包含循环点)。
参数
| 参数 | 类型 | 描述 |
|---|---|---|
guid |
ResourceGUID |
起始资源的全局唯一标识符 |
outCycle |
Containers::Array<ResourceGUID>& |
输出参数,接收检测到的循环路径 |
返回值
bool - 如果存在循环依赖返回 true,否则返回 false
示例
// 假设存在循环: A -> B -> C -> A
Containers::Array<ResourceGUID> cycle;
if (graph.HasCircularDependency("A"_guid, cycle)) {
// cycle 包含类似 ["A", "B", "C", "A"] 的路径
}