using System.Collections.Generic; using UnityEditor; using UnityEngine; public class Network : MonoBehaviour { private List _planets; public Planet planetPrefab; public void EnsureReady() { if (_planets == null) { _planets = new List(FindObjectsOfType()); } else { _planets.Clear(); _planets.AddRange(FindObjectsOfType()); } } public void Awake() { EnsureReady(); } public void AddPlanet() { EnsureReady(); var planet = Instantiate(planetPrefab); planet.Render(); planet.name = $"Planet {_planets.Count + 1}"; planet.transform.parent = transform; _planets.Add(planet); } /// /// Signal that a planet has been destroyed /// /// public void Destroyed(Planet destroyed) { _planets.Remove(destroyed); foreach (var planet in _planets) { if (planet != destroyed) continue; planet.neighbors.Remove(destroyed); } } void Start() { _planets = new List(FindObjectsOfType()); if (_planets.Count == 0) { AddPlanet(); } } void Update() { } }