private void Update() { //Play Walk Sound if (IsGrounded && Mathf.Abs(RelativeVelocity.x) > float.Epsilon) { if (walkSoundHandle == null) { walkSoundHandle = SoundManager.Instance.PlaySFX(SoundManager.Instance.WalkSound, 0.8f, true); } } else { if (walkSoundHandle != null) { walkSoundHandle.StopRightNow(); walkSoundHandle = null; } } }
private void Update() { if (GameManager.Instance.GameStateNow != GameState.Running) { return; } if (GameManager.Instance.PlayerGO == null || !PlayerController.Instance.pawnController.Alive) { return; } if (leavingCoolDoawn > 0f) { leavingCoolDoawn -= Time.unscaledDeltaTime; } if (AllowLeaving && TimeFreezeStarted && InputHandler.FreezeTime.KeyUp && leavingCoolDoawn <= 0f) { leavingCoolDoawn = 1f; LeaveFreeze(); TheWorldEffectHelper.Instance.ExitEffect(0.5f); if (FreezeOutHandle != null) { FreezeOutHandle.StopRightNow(); } FreezeOutHandle = SoundManager.Instance.PlaySFXIgnoreTimeFreeze(SoundManager.Instance.FreezeOutSound, 0.4f); if (FreezeInHandle != null) { SoundManager.Instance.CrossFade(FreezeOutHandle, FreezeInHandle, 0.5f); } SoundManager.Instance.SFXEnvironment = SoundEnvironmentEnum.Normal; } if (!TimeFreezeStarted && InputHandler.FreezeTime.KeyDown && leavingCoolDoawn <= 0f) { TheWorldEffectHelper.Instance.ZaWaLuDo(1f); waitForEffectFinish = 1f; EnterFreeze(); SoundManager.Instance.ClearSFXForTimeFreeze(); SoundManager.Instance.SFXEnvironment = SoundEnvironmentEnum.TimeFreezed; if (FreezeInHandle != null) { FreezeInHandle.StopRightNow(); } FreezeInHandle = SoundManager.Instance.PlaySFXIgnoreTimeFreeze(SoundManager.Instance.FreezeInSound, 0.4f); if (FreezeOutHandle != null) { SoundManager.Instance.CrossFade(FreezeInHandle, FreezeOutHandle, 0.5f); } } if (TimeFreezeStarted) { remainChangeTime -= Time.unscaledDeltaTime; if (remainChangeTime <= 0f) { remainChangeTime = ChangeSpeed; bool changed = false; if (waitForEffectFinish > 0) { waitForEffectFinish -= Time.unscaledDeltaTime; } else { if (InputHandler.TimeBackward.KeyHold) { ++TimeStampDiff; changed = true; } else if (InputHandler.TimeAfterward.KeyHold) { --TimeStampDiff; changed = true; } } if (changed) { TimeStampDiff = Math.Max(TimeStampDiff, 0); TimeStampDiff = Math.Min(TimeStampDiff, TimeStateManager.Instance.MaxRewindableTimeStamp); TimeStateManager.Instance.Rewind(TimeStampDiff, true); if (TimeStampDiff == 0 && PlayerGhostManager.Instance.CurrentGhost != null) { PlayerGhostManager.Instance.CurrentGhost.SetActive(false); } } } } if (TimeFreezeStarted && waitForEffectFinish <= 0f) { TimeUIGO.gameObject.SetActive(true); String timeStr = (TimeStateManager.RecordInterval * TimeStampDiff).ToString("F2") + " S"; TimeUIGO.SetTimeValue(TimeStampDiff, 0, TimeStateManager.Instance.CurrentTimeStamp - TimeStateManager.Instance.EarliestExistingTimeState + 1, timeStr); } else { TimeUIGO.gameObject.SetActive(false); } }