using System.Collections.Generic; using System.Linq; namespace Unity.VisualScripting { [InitializeAfterPlugins] public static class UnitBaseStateExtensions { static UnitBaseStateExtensions() { UnitBase.staticUnitsExtensions.Add(GetStaticOptions); UnitBase.dynamicUnitsExtensions.Add(GetDynamicOptions); UnitBase.contextualUnitsExtensions.Add(GetContextualOptions); } private static IEnumerable GetStaticOptions() { yield return StateUnit.WithStart().Option(); } private static IEnumerable GetDynamicOptions() { var stateMacros = UnityAPI.Await(() => AssetUtility.GetAllAssetsOfType().ToArray()); foreach (var stateUnit in stateMacros.Select(statemacro => new StateUnit(statemacro))) { yield return stateUnit.Option(); } } private static IEnumerable GetContextualOptions(GraphReference reference) { yield break; } } }