private void Update() { if (!timeManager.isGamePaused) { if (input.isPressingShift && input.PressedRewind) { StartRewinding(player); } else if (input.PressedRewind && !carrier.isCarrying && ray.hitSomething) { Rewindable rewindable = ray.hitInfo.collider.GetComponent <Rewindable>(); if (rewindable != null) { StartRewinding(rewindable); } } else if (isRewinding) { SetCountdownText(); if (!input.isPressingRewind) { StopRewinding(); } } } }
void CheckRewindable(MonoBehaviour effect) { if (effect is Rewindable) { this.lastRewindable = (Rewindable)effect; } }
private void StopRewinding() { rewindedObject.OutOfRecords -= StopRewinding; rewindedObject.StopRewinding(); rewindedObject = null; AudioManager.instance.Stop(AudioType.Rewind); chromaticAberration.active = false; rewindCountdown.SetActive(false); }
public static void Register(Rewindable rewindable) { if (ActiveObjects.ContainsKey(rewindable.getId())) { return; } ActiveObjects[rewindable.getId()] = rewindable; NewlyAdded.Add(rewindable.getId()); }
private void StartRewinding(Rewindable rewindable) { rewindedObject = rewindable; rewindedObject.OutOfRecords += StopRewinding; rewindedObject.StartRewinding(); AudioManager.instance.Play(AudioType.Rewind); chromaticAberration.active = true; SetCountdownText(); rewindCountdown.SetActive(true); }
void Rewind() { if (lastRewindable != null) { if (!lastRewindable.isActive()) { lastRewindable = null; return; } source.PlayOneShot(rewindSFX); lastRewindable.Rewind(); } }