From 0481d6563018900abf46b1f8c68ba107af5ba43b Mon Sep 17 00:00:00 2001 From: LordDemonix Date: Tue, 16 Sep 2025 19:49:18 +0200 Subject: [PATCH] feat: fetch all nodes --- Assets/Scripts/GameManager.cs | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/Assets/Scripts/GameManager.cs b/Assets/Scripts/GameManager.cs index f87b731..b473d1e 100644 --- a/Assets/Scripts/GameManager.cs +++ b/Assets/Scripts/GameManager.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Dynamic; +using System.Linq; using Unity.VisualScripting; using UnityEditor; using UnityEngine; @@ -17,6 +18,8 @@ public class GameManager : MonoBehaviour public static GameManager Instance { get; private set; } + public bool regenerateOnChange = false; + [HideInInspector] public float maxConnectionLength = 6; [HideInInspector] public int nodeCount = 100; [HideInInspector] public int hoverRadiusCon = 50; @@ -163,15 +166,17 @@ public class GameManagerEditor : Editor GameManager gm = (GameManager)target; GUILayout.Label("Generation Parameters", EditorStyles.boldLabel); + EditorGUI.BeginChangeCheck(); gm.nodeCount = EditorGUILayout.IntSlider("Node Count", gm.nodeCount, 0, 200); gm.maxConnectionLength = EditorGUILayout.Slider("Max Connection Length", gm.maxConnectionLength, 0, 100); - if (EditorGUI.EndChangeCheck()) + if (EditorGUI.EndChangeCheck() && gm.regenerateOnChange) { gm.GenerateAlongSphere(); gm.GenerateConnections(); SceneView.RepaintAll(); } + GUILayout.Space(10); GUILayout.Label("Connection Gizmos", EditorStyles.boldLabel); @@ -203,7 +208,23 @@ public class GameManagerEditor : Editor SceneView.RepaintAll(); } - GUILayout.EndHorizontal(); + GUILayout.EndHorizontal(); + + GUILayout.BeginHorizontal(); + + + if (GUILayout.Button("Fetch all Nodes")) + { + Node[] allNodes = gm.NodeParent.GetComponentsInChildren(); + + Debug.Log("Added " + (allNodes.Length - gm.nodeCount) + " new nodes"); + + gm.nodes = allNodes.ToList(); + gm.nodeCount = allNodes.Length; + } + + GUILayout.EndHorizontal(); + } private void OnSceneGUI()