Пример #1
0
    public void HandleTransform(InputAction.CallbackContext context)
    {
        if (GameManager.Instance.hasDimensionLeap)
        {
            if (GameManager.Instance.dimensionLeapLastRunTime + GameManager.Instance.dimensionLeapCooldown > Time.time)
            {
                print("transform in cooldown");
                GameManager.Instance.hpBarShakeAnimator.SetTrigger("HpBarShake");
                AudioManager.instance.PlaySound(AudioGroup.Ui, "Error");
                return;
            }
        }


        if (canAwake && canControl && playerMovement.playerCurrentState == PlayerMovement.PlayerState.Stand && !GameManager.Instance.is3D)
        {
            print("??");
            canControl = false;
            dimensionLeapParticleEffect.SetActive(true);
            AudioManager.instance.PlaySound(AudioGroup.Character, "DimensionLeapPreparing");
            Time.timeScale = 0.5f;
            _cameraEffect.StartShaking(0.1f); // Keep shaking
            isTransforming = true;
//            canControl = false;
        }
    }
    private void CheckIfPlayerAwakes()
    {
        if (canControl)
        {
            if (Input.GetKeyDown(KeyCode.T))
            {
                startCountdown = Time.time;
                Time.timeScale = 0.5f;
                _cameraEffect.StartShaking(10000f);        // Keep shaking
            }

            if (Input.GetKey(KeyCode.T))
            {
                if (startCountdown + enter3DWorldDuration * Time.timeScale <= Time.time)
                {
                    print(startCountdown + enter3DWorldDuration * Time.timeScale + "  " + Time.time);

                    transferStoragePowerFull = true;
                }
            }

            if (Input.GetKeyUp(KeyCode.T))
            {
                _cameraEffect.StopShaking();
                Time.timeScale = 1f;
                if (transferStoragePowerFull)
                {
                    Time.timeScale            = 1f;
                    GameManager.Instance.is3D = !GameManager.Instance.is3D;
                    if (GameManager.Instance.is3D)
                    {
                        GameManager.Instance.OnSceneChangeCallback?.Invoke(true);
                    }
                    else
                    {
                        GameManager.Instance.OnSceneChangeCallback?.Invoke(false);
                    }
                }
            }
        }
    }