study/first_study/Library/PackageCache/com.unity.visualscripting@191c0d7e3b69/Editor/VisualScripting.Flow/XFlowGraph.cs
jh04010421 739d49f1a0 Unity | 2026.01.20
수업 실습 파일
2026-01-20 11:01:57 +09:00

35 lines
912 B
C#

using System.Collections.Generic;
namespace Unity.VisualScripting
{
public static class XFlowGraph
{
public static IEnumerable<IUnit> GetUnitsRecursive(this FlowGraph flowGraph, Recursion recursion)
{
Ensure.That(nameof(flowGraph)).IsNotNull(flowGraph);
if (!recursion?.TryEnter(flowGraph) ?? false)
{
yield break;
}
foreach (var unit in flowGraph.units)
{
yield return unit;
var nestedGraph = (unit as SubgraphUnit)?.nest.graph;
if (nestedGraph != null)
{
foreach (var nestedUnit in GetUnitsRecursive(nestedGraph, recursion))
{
yield return nestedUnit;
}
}
}
recursion?.Exit(flowGraph);
}
}
}