UI Initialization ================== .. note:: This page used to document a single ``UIController`` class, described as "a mediator between UI elements". That class no longer exists — UI bootstrap and input routing are now split between the three classes below. .. code-block:: csharp public class UIInitializer : RTSBootable Boots the UI: collects scene references (canvases, minimap, etc.) into a ``UIContext``, and registers every UI component implementing ``IRequireInject`` in the scene as a dependency-injection target. .. code-block:: csharp public sealed class UIEarlyInitSystem : IInitSystem Runs right after ``UIInitializer``. Calls ``MakeEarlySubscriptions()`` on the minimap and Fog of War minimap, so they start listening to unit events before the match actually begins. .. code-block:: csharp public class UIInputSystem : MonoBehaviour, IRequireInject Handles top-level UI input which isn't specific to any single window: opening/closing the pause menu, routing production hotkeys to the correct building icon, and the "exit to menu" buttons.