Example #1
0
        private void FixedUpdate()
        {
            cameraControll.FindAveragePosition();
            if (usingMainCamera || positionsChanged)
            {
                if (cameraControll.FindRequiredSize() >= m_SizeBeforeDeviding)
                {
                    for (int i = 0; i < numberOfPlayers; i++)
                    {
                        players[i].m_hero.m_HeroCamera.gameObject.SetActive(true);
                    }

                    if (numberOfPlayers == 2)
                    {
                        m_ImageMiddle.rectTransform.sizeDelta = new Vector2(0.3f, Screen.height);
                        m_ImageMiddle.gameObject.SetActive(true);

                        if (player1CurrPos < player2CurrPos)
                        {
                            players[0].m_hero.m_HeroCamera.rect = new Rect(0, 0, 0.5f, 1);
                            players[1].m_hero.m_HeroCamera.rect = new Rect(0.5f, 0, 0.5f, 1);
                        }
                        else
                        {
                            players[0].m_hero.m_HeroCamera.rect = new Rect(0.5f, 0, 0.5f, 1);
                            players[1].m_hero.m_HeroCamera.rect = new Rect(0, 0, 0.5f, 1);
                        }
                    }
                    else if (numberOfPlayers == 3)
                    {
                        m_ImageLeft.rectTransform.sizeDelta         = new Vector2(0.3f, Screen.height);
                        m_ImageRight.rectTransform.sizeDelta        = new Vector2(0.3f, Screen.height);
                        m_ImageLeft.rectTransform.anchoredPosition  = new Vector2(-Screen.width / 6, 0);
                        m_ImageRight.rectTransform.anchoredPosition = new Vector2(Screen.width / 6, 0);
                        m_ImageLeft.gameObject.SetActive(true);
                        m_ImageRight.gameObject.SetActive(true);


                        if (player1CurrPos < player2CurrPos && player2CurrPos < player3CurrPos)
                        {
                            players[0].m_hero.m_HeroCamera.rect = new Rect(0, 0, 1 / 3f, 1);
                            players[1].m_hero.m_HeroCamera.rect = new Rect(1 / 3f, 0, 1 / 3f, 1);
                            players[2].m_hero.m_HeroCamera.rect = new Rect(2 / 3f, 0, 1 / 3f, 1);
                        }
                        else if (player1CurrPos < player3CurrPos && player3CurrPos < player2CurrPos)
                        {
                            players[0].m_hero.m_HeroCamera.rect = new Rect(0, 0, 1 / 3f, 1);
                            players[1].m_hero.m_HeroCamera.rect = new Rect(2 / 3f, 0, 1 / 3f, 1);
                            players[2].m_hero.m_HeroCamera.rect = new Rect(1 / 3f, 0, 1 / 3f, 1);
                        }
                        else if (player3CurrPos < player1CurrPos && player1CurrPos < player2CurrPos)
                        {
                            players[0].m_hero.m_HeroCamera.rect = new Rect(1 / 3f, 0, 1 / 3f, 1);
                            players[1].m_hero.m_HeroCamera.rect = new Rect(2 / 3f, 0, 1 / 3f, 1);
                            players[2].m_hero.m_HeroCamera.rect = new Rect(0, 0, 1 / 3f, 1);
                        }
                        else if (player3CurrPos < player2CurrPos && player2CurrPos < player1CurrPos)
                        {
                            players[0].m_hero.m_HeroCamera.rect = new Rect(2 / 3f, 0, 1 / 3f, 1);
                            players[1].m_hero.m_HeroCamera.rect = new Rect(1 / 3f, 0, 1 / 3f, 1);
                            players[2].m_hero.m_HeroCamera.rect = new Rect(0, 0, 1 / 3f, 1);
                        }
                        else if (player2CurrPos < player3CurrPos && player3CurrPos < player1CurrPos)
                        {
                            players[0].m_hero.m_HeroCamera.rect = new Rect(2 / 3f, 0, 1 / 3f, 1);
                            players[1].m_hero.m_HeroCamera.rect = new Rect(0, 0, 1 / 3f, 1);
                            players[2].m_hero.m_HeroCamera.rect = new Rect(1 / 3f, 0, 1 / 3f, 1);
                        }
                        else if (player2CurrPos < player1CurrPos && player1CurrPos < player3CurrPos)
                        {
                            players[0].m_hero.m_HeroCamera.rect = new Rect(1 / 3f, 0, 1 / 3f, 1);
                            players[1].m_hero.m_HeroCamera.rect = new Rect(0, 0, 1 / 3f, 1);
                            players[2].m_hero.m_HeroCamera.rect = new Rect(2 / 3f, 0, 1 / 3f, 1);
                        }
                    }


                    mainCamera.gameObject.SetActive(false);
                    usingMainCamera = false;
                }
                positionsChanged     = false;
                m_UIManager.changeUI = true;
            }
            else
            {
                if (cameraControll.FindRequiredSize() < m_SizeBeforeForging)
                {
                    m_ImageMiddle.gameObject.SetActive(false);
                    m_ImageLeft.gameObject.SetActive(false);
                    m_ImageRight.gameObject.SetActive(false);
                    mainCamera.gameObject.SetActive(true);

                    for (int i = 0; i < numberOfPlayers; i++)
                    {
                        players[i].m_hero.GetComponentInChildren <Camera>().gameObject.SetActive(false);
                    }
                    usingMainCamera = true;
                }
            }
        }