File size: 1,588 Bytes
18a519f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | #if VISUAL_SCRIPT_INTERNAL
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Unity.VisualScripting;
using UnityEditor;
using UnityEngine;
public class FlowGraphUnitUISample : RuntimeFlowGraph
{
[MenuItem("Tools/Visual Scripting/Internal/Create Node UI Samples", priority = LudiqProduct.DeveloperToolsMenuPriority + 403)]
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);
}
}
}
}
#endif
|