コード例 #1
0
        /// <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);
                }
            }
        }
コード例 #2
0
    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();
    }
コード例 #3
0
 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);
 }
コード例 #4
0
 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;
 }
コード例 #5
0
        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}.");
                }
            }
        }