public static void FrameDelayCall(this MonoBehaviour component, Callback function, int frames = 1) { component.StartCoroutine( CoroutineUtility.RunThenCallback( CoroutineUtility.WaitForFrames(frames), function)); }
public static void TimeDelayCall(this MonoBehaviour component, Callback function, float seconds = 1) { component.StartCoroutine( CoroutineUtility.RunThenCallback( CoroutineUtility.WaitForSeconds(seconds), function)); }
public IEnumerator FadeOut() { panel.SetActive(true); yield return(CoroutineUtility.RunThenCallback( LerpAlpha((Color newColor) => this.color = newColor, tint.a, 0.0f, duration, false, tint), Hide)); }
public void GameOverFunction() { this.gameObject.SetActive(true); SetGameOverText(); StartCoroutine(CoroutineUtility.RunThenCallback( winDisplayPanel.FadeIn(), () => this.TimeDelayCall( StartCountdown, delayBeforeResetCountdown))); }
public static void OneShotFadeTransition(float totalDuration, float blackScreenPauseDuration = 0.0f) { float fadeDuration = totalDuration * 0.5f; ScreenTransition screenTransition = new ScreenTransition(fadeDuration); IEnumerator coroutineSequence = CoroutineUtility.RunSequentially( screenTransition.FadeOut(), CoroutineUtility.WaitForRealtimeSeconds(blackScreenPauseDuration), screenTransition.FadeIn() ); TransitionUtility.instance.StartCoroutine( CoroutineUtility.RunThenCallback( coroutineSequence, () => Destroy(screenTransition.panel.panel))); }
private void HandleCollision(GameObject thing) { Ball ball = thing.GetComponent <Ball>(); if (ball == null || ball.Owner != null || !ball.Ownable || isCoolingDown) { return; } if (stateManager != null) { TeamManager last_team = ball.LastOwner?.GetComponent <Player>().team; TeamManager this_team = GetComponent <Player>().team; stateManager.AttemptPossession(() => StartCarryingBall(ball), DropBall); } else { StartCoroutine(CoroutineUtility.RunThenCallback(CarryBall(ball), DropBall)); } }
public void ReloadScene() { StartCoroutine(CoroutineUtility.RunThenCallback( screenTransition.FadeOut(), () => SceneManager.LoadScene(SceneManager.GetActiveScene().name))); }
public void Load(Scene newScene) { StartCoroutine(CoroutineUtility.RunThenCallback( screenTransition.FadeOut(), () => LoadHelper(newScene))); }