Пример #1
0
    private void Awake()
    {
        _instance = this;

        MyInput.Init();

        DontDestroyOnLoad(gameObject);

        if (isOn)
        {
            GameObject go = gameObject;

            if (isPlay)
            {
#if UNITY_EDITOR
                GameObject oldeventSystem = GameObject.Find("EventSystem");
                if (oldeventSystem)
                {
                    oldeventSystem.SetActive(false);
                }

                eventSystem.SetActive(true);
                Get(inputP, go);
                Get(netP, go);
                Get(timeP, go);
                Get(androidP, go);
                Get(keyP, go);
#endif
            }
            else
            {
                eventSystem.SetActive(false);
                Get(inputR, go);
                Get(netR, go);
                Get(timeR, go);
                Get(androidR, go);
                Get(keyR, go);
            }
        }
    }
Пример #2
0
    void Update()
    {
        if (CurrentState == GameState.Splash)
        {
            Splash.SetActive(true);
            if (Input.GetButtonDown("P1XboxX"))
            {
                ChangeState(GameState.Countdown);
            }
        }
        else if (CurrentState == GameState.Countdown)
        {
            if (!_isCountingDown)
            {
                Splash.SetActive(false);

                StartCoroutine(CountdownCoroutine());
            }
        }
        else if (CurrentState == GameState.Input)
        {
            if (!_isInputState)
            {
                _isInputState    = true;
                audioSource.clip = timerClip;
                audioSource.Play();

                Camera.backgroundColor = CurrentLevel.bgColor;

                PlayerImage.gameObject.SetActive(true);
                TargetImage.gameObject.SetActive(true);

                PlayerImage.rectTransform.position      = new Vector3(PlayerTransform.x * translateCoeff, PlayerTransform.y * translateCoeff, 0);
                PlayerImage.rectTransform.localRotation = Quaternion.Euler(0, 0, PlayerTransform.rotation * rotateCoeff);
                PlayerImage.rectTransform.localScale    = new Vector3(1, 1, 1) * PlayerTransform.scale * scaleCoeff;

                TargetImage.rectTransform.position      = new Vector3(TargetTransform.x * translateCoeff, TargetTransform.y * translateCoeff, 0);
                TargetImage.rectTransform.localRotation = Quaternion.Euler(0, 0, TargetTransform.rotation * rotateCoeff);
                TargetImage.rectTransform.localScale    = new Vector3(1, 1, 1) * TargetTransform.scale * scaleCoeff;

                UpdateSizeTexts();

                //TargetImage.color = CurrentLevel.bgColor * 0.9f;
                TargetImage.color = Color.white;
                PlayerImage.color = CurrentLevel.spriteColor;
                dotMaterial.color = PlayerImage.color;

                MyInput.Init();
            }

            var res = MyInput.Tick();
            if (res == InputTickResult.Confirm)
            {
                _isInputState = false;
                ChangeState(GameState.Play);
            }
            else if (res == InputTickResult.Timeout)
            {
                _isInputState = false;
                ChangeState(GameState.Lose);
                audioSource.Stop();
                audioSource.clip = loseClip;
                audioSource.Play();
            }
        }
        else if (CurrentState == GameState.Play)
        {
            if (!_isPlaying)
            {
                audioSource.Stop();
                audioSource.clip = silenceClip;
                audioSource.Play();

                var list = MyInput.myInputs;
                StartCoroutine(PlayCoroutine(list));
            }
        }
        else if (CurrentState == GameState.Transition)
        {
            CurrentLevelId++;
            LoadLevel(CurrentLevelId);
        }
        else if (CurrentState == GameState.Lose)
        {
            GameOverText.gameObject.SetActive(true);
            if (Input.GetButtonDown("P1XboxX"))
            {
                InitLevels();
                LoadLevel(0);
            }
        }
        else if (CurrentState == GameState.Win)
        {
            WinUI.gameObject.SetActive(true);
            if (Input.GetButtonDown("P1XboxX"))
            {
                InitLevels();
                LoadLevel(0);
            }
        }
    }