/// <summary>
    /// 매치 검사를 시작할 첫번째 블록을 가져옵니다.
    /// </summary>
    /// <param name="block">기준 블록</param>
    /// <param name="matchDir">체크 방향</param>
    /// <returns>첫번째 블록</returns>
    private Block GetFirstBlock(Block block, MatchDirection matchDir)
    {
        Block     firstBlock = block;
        Block     nextBlock  = block;
        Direction dir        = MatchUtil.LookAtStart(matchDir);

        while (true)
        {
            nextBlock = BlockManager.instance.GetNeighbor(nextBlock, dir);
            if (nextBlock == null || nextBlock.type != block.type)
            {
                break;
            }
            firstBlock = nextBlock;
        }
        return(firstBlock);
    }