Exemplo n.º 1
0
        private void InitViewports()
        {
            if (m_gameViewports != null)
            {
                for (int i = 0; i < m_gameViewports.Length; ++i)
                {
                    Destroy(m_gameViewports[i].gameObject);
                }
            }

            if (m_viewportPlaceholders.Length < m_viewportCount)
            {
                Debug.LogError("m_viewports.Length < m_playerCount");
            }
            else
            {
                m_gameViewports = new GameViewport[m_viewportCount];

                m_secondRow.SetActive(m_viewportCount > 2);
                m_secondCol.SetActive(m_viewportCount > 1);

                IEventSystemManager eventSystemMan = Dependencies.EventSystemManager;

                for (int i = 0; i < m_viewportCount; ++i)
                {
                    GameViewport gameViewport = Instantiate(m_gameViewportPrefab, m_viewportPlaceholders[i]);
                    gameViewport.Camera.gameObject.SetActive(m_isOn);
                    gameViewport.name             = "Viewport" + i;
                    gameViewport.LocalPlayerIndex = i;
                    m_gameViewports[i]            = gameViewport;

                    eventSystemMan.Apply(gameViewport.gameObject, i);

                    PlayerMenu playerMenu = gameViewport.GetComponent <PlayerMenu>();
                    if (playerMenu != null)
                    {
                        playerMenu.LocalPlayerIndex = i;
                    }
                }

                VoxelConsole console = GetComponentInParent <VoxelConsole>();
                console.Initialize();

                for (int i = 0; i < m_viewportCount; ++i)
                {
                    PlayerConsoleCommandHandler cmdHandler = m_viewportPlaceholders[i].GetComponentInChildren <PlayerConsoleCommandHandler>();
                    if (cmdHandler != null)
                    {
                        cmdHandler.LocalPlayerIndex = i;
                        cmdHandler.Initialize();
                    }
                }
            }
        }