Пример #1
0
 public static void FrameDelayCall(this MonoBehaviour component, Callback function,
                                   int frames = 1)
 {
     component.StartCoroutine(
         CoroutineUtility.RunThenCallback(
             CoroutineUtility.WaitForFrames(frames), function));
 }
Пример #2
0
 public static void TimeDelayCall(this MonoBehaviour component, Callback function,
                                  float seconds = 1)
 {
     component.StartCoroutine(
         CoroutineUtility.RunThenCallback(
             CoroutineUtility.WaitForSeconds(seconds), function));
 }
Пример #3
0
 public IEnumerator FadeOut()
 {
     panel.SetActive(true);
     yield return(CoroutineUtility.RunThenCallback(
                      LerpAlpha((Color newColor) => this.color = newColor,
                                tint.a, 0.0f, duration, false, tint),
                      Hide));
 }
Пример #4
0
 public void GameOverFunction()
 {
     this.gameObject.SetActive(true);
     SetGameOverText();
     StartCoroutine(CoroutineUtility.RunThenCallback(
                        winDisplayPanel.FadeIn(),
                        () => this.TimeDelayCall(
                            StartCountdown, delayBeforeResetCountdown)));
 }
Пример #5
0
    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)));
    }
Пример #6
0
    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));
        }
    }
Пример #7
0
 public void ReloadScene()
 {
     StartCoroutine(CoroutineUtility.RunThenCallback(
                        screenTransition.FadeOut(),
                        () => SceneManager.LoadScene(SceneManager.GetActiveScene().name)));
 }
Пример #8
0
 public void Load(Scene newScene)
 {
     StartCoroutine(CoroutineUtility.RunThenCallback(
                        screenTransition.FadeOut(),
                        () => LoadHelper(newScene)));
 }