using UnityEngine; using UnityEngine.UIElements; public static class Collider2DHelper { public static Vector2 TopCenter(this Collider2D collider) { Vector2 center = collider.bounds.center; Vector2 extents = collider.bounds.extents; // half-size return new Vector2(center.x, center.y + extents.y); } } [RequireComponent(typeof(Collider2D))] [RequireComponent(typeof(ResourceSource))] [RequireComponent(typeof(UIDocument))] [RequireComponent(typeof(ResourceGenerator))] public class FactoryInfo : MonoBehaviour { [SerializeField()] private new Camera camera; [SerializeField] private string title; private new Collider2D collider; private ResourceSource source; private ResourceGenerator generator; private UIDocument uiDocument; private VisualElement rootElement; private VisualElement panelElement; private Label titleLabel; private ProgressBar progressBar; // Start is called once before the first execution of Update after the MonoBehaviour is created void Start() { collider = GetComponent(); source = GetComponent(); generator = GetComponent(); uiDocument = GetComponent(); rootElement = uiDocument.rootVisualElement; panelElement = rootElement.Q("Panel"); titleLabel = rootElement.Q