Maze / Library /PackageCache /com.unity.visualscripting@1.8.0 /Editor /VisualScripting.Flow /FlowGraphUnitUISample.cs
| using System; | |
| using System.Collections; | |
| using System.Collections.Generic; | |
| using System.Linq; | |
| using Unity.VisualScripting; | |
| using UnityEditor; | |
| using UnityEngine; | |
| public class FlowGraphUnitUISample : RuntimeFlowGraph | |
| { | |
| [] | |
| public static void CreateUnitUISamples() | |
| { | |
| (new FlowGraphUnitUISample()).CreateGraphUISample(); | |
| } | |
| private void CreateGraphUISample() | |
| { | |
| CreateGraph(); | |
| IEnumerable<Type> GetEventUnitTypes() => AppDomain.CurrentDomain.GetAssemblies().SelectMany(a => a.GetTypes().Where(t => typeof(IUnit).IsAssignableFrom(t))).Where(t => t.IsClass && !t.IsAbstract); | |
| Vector2 position = Vector2.zero; | |
| int index = 0; | |
| foreach (var unitType in GetEventUnitTypes()) | |
| { | |
| try | |
| { | |
| string name = unitType.Assembly.GetName().Name; | |
| string space = unitType.FullName; | |
| var unit = Activator.CreateInstance(name, space); | |
| IUnit b = (IUnit)unit.Unwrap(); | |
| b.position = position; | |
| if (index % 10 == 0) | |
| { | |
| position.x = 0; | |
| position.y += 180; | |
| } | |
| position.x += 180; | |
| AddUnit(b, position); | |
| index++; | |
| } | |
| catch (Exception e) | |
| { | |
| Debug.LogException(e); | |
| } | |
| } | |
| } | |
| } | |