public override IEnumerator OnLoad(Dictionary <string, object> args = null)
    {
        yield return(base.OnLoad(args));

        LunarVariables.debug.AddDelegate(ChangeDebugMode);

        ResetCounter(_scoreCounter);
        ResetCounter(_highscoreCounter);
        ResetCounter(_coinCounter);

        _savings      = 0;
        _contineCount = 0;

        _snapshots.Clear();

        GameManager.instance.board.gameObject.SetActive(true);
        GameManager.instance.block.gameObject.SetActive(true);

        GameManager.instance.Reset();

        for (int i = 0, max = _itemUsed.Length; i < max; ++i)
        {
            _itemUsed[i] = 0;
        }

        _trashCan.Load();

        _addedScoreText.alpha = 0.0f;

        //
        int      score    = 0;
        PlayData playData = GetParam <PlayData>(PARAM_PLAY_DATA, null);

        if (playData != null)
        {
            score         = playData.Score;
            _savings      = playData.Coin;
            _contineCount = playData.AdContinueWatchCount;

            if (playData.Cells != null)
            {
                int[] numbers = new int[playData.Cells.Length];
                for (int y = 0, height = playData.Cells.GetLength(0); y < height; ++y)
                {
                    for (int x = 0, width = playData.Cells.GetLength(1); x < width; ++x)
                    {
                        numbers[y * width + x] = playData.Cells[y, x];
                    }
                }

                GameManager.instance.board.Setup(numbers);
            }
            else
            {
                GameManager.instance.board.Clear();
            }

            int[] itemUsed = playData.ItemUseCountInfo.ItemUseCountArray;
            for (int i = 0, max = Mathf.Min(_itemUsed.Length, itemUsed.Length); i < max; ++i)
            {
                _itemUsed[i] = itemUsed[i];
            }
        }

        //
        _mission.Reset();

        _scoreCounter.SetDefault(score);
        _highscoreCounter.SetDefault(Mathf.Max(score, DataManager.Instance.UserData.Score));
        _coinCounter.SetDefault(DataManager.Instance.UserData.Coin);
        _coinEffect.SetActive(false);

        UpdateCoinbox(true);
        UpdateItemButtons();

        SoundManager.Instance.PlayBgm(GameConstants.BGM_INGAME);
    }