Пример #1
0
    public void HandleTransformRelease(InputAction.CallbackContext context)
    {
        if (!isTransforming)
        {
            return;
        }
        canControl = true;
        dimensionLeapParticleEffect.SetActive(false);
        AudioManager.instance.StopSound(AudioGroup.Character);
        isTransforming      = false;
        powerAccumulateTime = 0;
        _cameraEffect.StopShaking();
        print("Set time scale to 1");

        Time.timeScale = 1f;
        print(transferStoragePowerFull);
        if (transferStoragePowerFull)
        {
            dimensionLeapSucceedParticleEffect.SetActive(true);
            AudioManager.instance.PlaySound(AudioGroup.Character, "DimensionLeapTo3D");
            print("play 3d sound");
            GameManager.Instance.is3D = !GameManager.Instance.is3D;
            if (GameManager.Instance.is3D)
            {
                GameManager.Instance.OnSceneChangeCallback?.Invoke(true);
            }
            else
            {
                GameManager.Instance.OnSceneChangeCallback?.Invoke(false);
            }

            transferStoragePowerFull = false; // reset storage power full
        }
    }
    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);
                    }
                }
            }
        }
    }