Пример #1
0
    // Update is called once per frame
    void Update()
    {
        // reset whole game - DEBUG
        if (GameManager.Instance.DebugMode && PlayerControllerState.ButtonDownBack)
        {
            GameManager.Instance.ResetWholeGame();
        }


        // hide player
        if (GameManager.Instance.PlayingState == PlayingState.DisplayingScore)
        {
            Hide();
            //Activate the spawn point to make sure that everyone will be able to spawn.
            ChosenSpawn.SetActive(true);
        }

        // tell game manager that I am ready
        if (GameManager.Instance.PlayingState == PlayingState.WaitingForEverbodyToGetReady)
        {
            PlayerReady();
        }

        // playing loop
        if (GameManager.Instance.PlayingState == PlayingState.Playing || GameManager.Instance.PlayingState == PlayingState.PraticeMode)
        {
            playerAim.AimUpdate();
            playerMove.MoveUpdate();
            playerJump.JumpUpdate();

            if (GameManager.Instance.DebugMode && GameManager.Instance.PlayingState == PlayingState.Playing)
            {
                // kill myself - DEBUG
                if (PlayerControllerState.ButtonDownY)
                {
                    StartCoroutine(Die());
                }
            }
        }

        // go from practice mode to game, or from show score to game
        if (PlayerControllerState.ButtonDownStart)
        {
            switch (GameManager.Instance.PlayingState)
            {
            case PlayingState.TalkingBeforeControllerCalibration:
            case PlayingState.ControllerCalibration:
                GameManager.Instance.SkipTutorialAndGoToWait();
                GameManager.Instance.ResetLevel();
                break;

            case PlayingState.PraticeMode:
                GameManager.Instance.ResetLevel();
                break;

            case PlayingState.DisplayingScore:
                Application.LoadLevel(0);
                break;

                /*default:
                 *  GameManager.Instance.Pause();
                 *  break;*/
            }
        }


        if (PState != PlayerState.Alive && GameManager.Instance.PlayingState == PlayingState.Playing)
        {
            float lerp = Mathf.PingPong(Time.time, RespawnBlinkRate) / RespawnBlinkRate;


            if (BodyRenderer != null)
            {
                BodyRenderer.material.color     = Color.Lerp(pMat.color, Color.white, lerp);
                BodyRenderer.materials[1].color = Color.Lerp(pMat.color, Color.white, lerp);
            }
            else
            {
                renderer.material.color = Color.Lerp(pMat.color, Color.white, lerp);
            }

            if (HelmetRenderers[0] != null)
            {
                for (int i = 0; i < HelmetRenderers.Length; i++)
                {
                    // removed by Gustav
                    //HelmetRenderers[i].material.color = Color.Lerp(originalHelmetColors[i], Color.white, lerp);
                }
            }

            respawnIdleTimer -= Time.deltaTime;

            //Make sure the player can't aim
            playerAim.TurnOffAim();
        }
        else
        {
            if (BodyRenderer != null)
            {
                BodyRenderer.material.color     = pMat.color;
                BodyRenderer.materials[1].color = pMat.color;
            }
            else
            {
                renderer.material.color = pMat.color;
            }

            if (HelmetRenderers[0] != null)
            {
                for (int i = 0; i < HelmetRenderers.Length; i++)
                {
                    // removed by Gustav
                    //HelmetRenderers[i].material.color = originalHelmetColors[i];
                }
            }
        }
    }