/// <summary> /// Registers a screen. If transform is passed, the layer will /// reparent it to itself. Screens can only be shown after they're registered. /// </summary> /// <param name="screenId">Screen identifier.</param> /// <param name="controller">Controller.</param> /// <param name="screenTransform">Screen transform. If not null, will be reparented to proper layer</param> public void RegisterScreen(string screenId, IUIScreenController controller, Transform screenTransform) { IWindowController window = controller as IWindowController; if (window != null) { windowLayer.RegisterScreen(screenId, window); if (screenTransform != null) { windowLayer.ReparentScreen(controller, screenTransform); } return; } IPanelController panel = controller as IPanelController; if (panel != null) { panelLayer.RegisterScreen(screenId, panel); if (screenTransform != null) { panelLayer.ReparentScreen(controller, screenTransform); } } }
void Initialize() { foreach (var screen in settings.screensPrefabs) { var screenInstance = Instantiate(screen); var screenController = screenInstance.GetComponent <IScreenController>(); if (screenController != null) { IDialogController dialog = screenController as IDialogController; if (dialog != null) { dialogLayer.RegisterScreen(screen.name, dialog, screenInstance.transform); continue; } IPanelController panel = screenController as IPanelController; if (panel != null) { panelLayer.RegisterScreen(screen.name, panel, screenInstance.transform); } } } UIManagerSetEmitter.EmitEvent(); }
protected void Initialize(IEventController eventC, IPanelController panelC, MediaController mediaC, ImageController imageController) { this.EventC = eventC; this.MediaC = mediaC; this.PanelC = panelC; this.imageController = imageController; Initialize(true); }
public Engine(PokerTable pokerTable, IDatabase database) { this.pokerTable = pokerTable; this.database = database; this.cardController = new CardController(this.PokerTable, this.Database); this.chipsController = new ChipsController(this.PokerTable, this.Database); this.panelController = new PanelController(this.PokerTable, this.Database); this.GameHandler = null; }
public void RegisterScreen <T>(T screenPrefab) where T : IScreenController { if (IsPrefabValid(screenPrefab)) { Type screenType = typeof(T); if (typeof(IPanelController).IsAssignableFrom(screenType)) { IPanelController screenAsPanel = screenPrefab as IPanelController; ProcessScreenRegister(screenAsPanel, panelLayer); } else if (typeof(IWindowController).IsAssignableFrom(screenType)) { IWindowController screenAsWindow = screenPrefab as IWindowController; ProcessScreenRegister(screenAsWindow, windowLayer); } else { Debug.LogError($"The Screen type {typeof(T).Name} must implement {typeof(IPanelController).Name} or {typeof(IWindowController).Name}."); } } }