Esempio n. 1
0
    void Update()
    {
        if (LerpOverTheNewCamera)
        {
            CurrentCameraPosition = this.transform.position;
            CurrentCameraRotation = this.transform.rotation;

            transform.position = Vector3.Slerp(CurrentCameraPosition, CameraNewPosition, speed * Time.deltaTime);
            transform.rotation = Quaternion.Slerp(CurrentCameraRotation, CameraNewRotation, speed * Time.deltaTime);

            float dist = Vector3.Distance(CurrentCameraPosition, CameraNewPosition);
            if (dist < 0.01 && !IsOnMenu)
            {
                LerpOverTheNewCamera = false;
                IsOnMenu             = true;
                MainMenu.EnableButtons();
            }
            else if (dist < 0.01 && IsOnMenu)
            {
                EnableInGamePlayer();
                LerpOverTheNewCamera = false;
                IsOnMenu             = false;
            }
        }

        Vector3 forward   = this.transform.TransformDirection(Vector3.forward);
        int     layer1    = 2;
        int     layer2    = 8;
        int     layerMask = ~((1 << layer1) | (1 << layer2));     // NOT ~(1 << layer1) | ~(1 << layer2)

        if (Physics.Raycast(this.transform.position, forward, out hit, 5.0f, layerMask))
        {
            switch (hit.collider.gameObject.tag)
            {
            case "OptionsScreen":
                if (!LerpOverTheNewCamera && !IsOnMenu)
                {
                    Contact = true;
                }
                break;

            case "ProfilScreen":
                if (!LerpOverTheNewCamera && !IsOnMenu)
                {
                    Contact = true;
                }
                break;

            case "ArmurerieScreen":
                if (!LerpOverTheNewCamera && !IsOnMenu)
                {
                    Contact = true;
                }
                break;

            case "DisconnectScreen":
                if (!LerpOverTheNewCamera && !IsOnMenu)
                {
                    Contact = true;
                }
                break;

            case "Normal games":
                if (!LerpOverTheNewCamera && !IsOnMenu)
                {
                    Contact = true;
                }
                break;

            case "Private games":
                if (!LerpOverTheNewCamera && !IsOnMenu)
                {
                    Contact = true;
                }
                break;

            case "Ranked games":
                if (!LerpOverTheNewCamera && !IsOnMenu)
                {
                    Contact = true;
                }
                break;

            case "Host games":
                if (!LerpOverTheNewCamera && !IsOnMenu)
                {
                    Contact = true;
                }
                break;

            default:
                Contact = false;
                break;
            }
        }

        if (Input.GetMouseButtonDown(0) && Contact && !LerpOverTheNewCamera && !IsOnMenu)
        {
            if (Physics.Raycast(this.transform.position, forward, out hit, 5.0f, layerMask))
            {
                switch (hit.collider.gameObject.tag)
                {
                case "OptionsScreen":

                    Contact = false;
                    DisableInGamePlayer();
                    SmoothCameraMove(0, hit.collider.gameObject);
                    MainMenu.MyMenuState = AeMainMenu.GuiState.OptionsMenu;
                    break;

                case "ProfilScreen":
                    if (!LerpOverTheNewCamera && !IsOnMenu)
                    {
                        Contact = false;
                        DisableInGamePlayer();
                        SmoothCameraMove(0, hit.collider.gameObject);
                        MainMenu.MyMenuState = AeMainMenu.GuiState.ProfilMenu;
                    }
                    break;

                case "ArmurerieScreen":
                    if (!LerpOverTheNewCamera && !IsOnMenu)
                    {
                        Contact = false;
                        DisableInGamePlayer();
                        SmoothCameraMove(0, hit.collider.gameObject);
                        MainMenu.MyMenuState = AeMainMenu.GuiState.ShopMenu;
                    }
                    break;

                case "DisconnectScreen":
                    if (!LerpOverTheNewCamera && !IsOnMenu)
                    {
                        Contact = false;
                        DisableInGamePlayer();
                        SmoothCameraMove(0, hit.collider.gameObject);
                        MainMenu.MyMenuState = AeMainMenu.GuiState.DisconnectMenu;
                    }
                    break;

                case "Normal games":
                    if (!LerpOverTheNewCamera && !IsOnMenu)
                    {
                        Contact = false;
                        DisableInGamePlayer();
                        SmoothCameraMove(0, hit.collider.gameObject);
                        MainMenu.MyMenuState = AeMainMenu.GuiState.NormalGames;
                    }
                    break;

                case "Private games":
                    if (!LerpOverTheNewCamera && !IsOnMenu)
                    {
                        Contact = false;
                        DisableInGamePlayer();
                        SmoothCameraMove(0, hit.collider.gameObject);
                        MainMenu.MyMenuState = AeMainMenu.GuiState.PrivateGames;
                    }
                    break;

                case "Ranked games":
                    if (!LerpOverTheNewCamera && !IsOnMenu)
                    {
                        Contact = false;
                        DisableInGamePlayer();
                        SmoothCameraMove(0, hit.collider.gameObject);
                        MainMenu.MyMenuState = AeMainMenu.GuiState.RankedGames;
                    }
                    break;

                case "Host games":
                    if (!LerpOverTheNewCamera && !IsOnMenu)
                    {
                        Contact = false;
                        DisableInGamePlayer();
                        SmoothCameraMove(0, hit.collider.gameObject);
                        MainMenu.MyMenuState = AeMainMenu.GuiState.HostGames;
                    }
                    break;

                default:
                    Contact = false;
                    break;
                }
            }
        }
        if (Input.GetKeyDown(KeyCode.Escape) && !LerpOverTheNewCamera && IsOnMenu)
        {
            SmoothCameraMove(1, null);
            if (AeCore.m_pCoreGame.MyStats.Character[0].m_gInstantiatedPrefab)
            {
                AeCore.m_pCoreGame.MyStats.Character[0].m_gInstantiatedPrefab.SetActive(false);
            }
            AeCore.m_pCoreGame.GetComponent <AeChat>().isOnMenu = false;
            MainMenu.GetBackToPlayMode();
        }
    }