/// <summary>
    /// 스테이지 랜덤 블록 세팅
    /// </summary>
    public void RandomBlock_Spawn()
    {
        Dictionary <string, object> stage_Info = DataManager.Instance.stage_data[GamePlay.instance.Play_Stage_Num];

        if ((int)stage_Info["stage_Type"] == 0)
        {
            //튜토리얼////////////////////////////////////////////////////////////////////////
            Dictionary <string, object> tuto_Info = DataManager.Instance.tutorial_data[GamePlay.instance.Play_Stage_Num];

            for (int i = 0; i < 6; i++)
            {
                string block_Num = (string)tuto_Info["block_num_" + i];
                if (block_Num != "")
                {
                    string[] str_block = block_Num.Split('_');

                    int block_color = Random.Range(0, 6);

                    foreach (var item in str_block)
                    {
                        if (i == 4 && GamePlay.instance.Play_Stage_Num == 2)
                        {
                            block_color = 6;
                        }

                        GamePlay.instance.blockGrid[int.Parse(item)].SetBlockImage(UIManager.Instance.Sp_Blocks[block_color], 1, block_color + 1);
                    }
                }
            }
            //////////////////////////////////////////////////////////////////////////////////
        }
        else
        {
            //일반////////////////////////////////////////////////////////////////////////

            for (int i = 1; i < 4; i++)
            {
                int block_Num = (int)stage_Info["random_block_" + i];
                int block_Val = (int)stage_Info["block_count_" + i];
                int block_Hp  = (int)stage_Info["block_hp_" + i];

                List <Block> NoneFill = GamePlay.instance.blockGrid.FindAll(x => x.block_Type.Equals(Block_Type.None));

                //Debug.Log("NoneFill  " + NoneFill.Count);
                Clear_Stage_Info Find_Stage_Info = DataManager.Instance.state_Player.clear_Stage.Find(x => x.Stage_Id.Equals(GamePlay.instance.Play_Stage_Num));

                int stage_Star = Find_Stage_Info != null ? Find_Stage_Info.Stage_Star : 0;


                switch (stage_Star)
                {
                case 0:
                    break;

                case 1:
                    block_Val += Mathf.RoundToInt(block_Val * 0.3f);
                    break;

                case 2:
                case 3:

                    block_Val += Mathf.RoundToInt(block_Val * 0.7f);

                    break;

                default:
                    break;
                }

                Debug.Log("block_Num  " + block_Num + " block_Val  " + block_Val + "block_Hp  " + block_Hp);

                int Mission_val = block_Val * (block_Hp + 1);

                // mission 8 block_Num 7
                if (block_Num == 7)
                {
                    int mission = 0;

                    int clearNum = 0;

                    for (int j = 1; j < 3; j++)
                    {
                        mission = (int)stage_Info["mission_" + j];
                        if (mission == 8)
                        {
                            clearNum = (int)stage_Info["clear_" + j];
                            break;
                        }
                    }

                    switch (stage_Star)
                    {
                    case 0:
                        break;

                    case 1:
                        clearNum += Mathf.RoundToInt(clearNum * 0.3f);
                        break;

                    case 2:
                    case 3:

                        clearNum += Mathf.RoundToInt(clearNum * 0.7f);

                        break;

                    default:
                        break;
                    }


                    Debug.Log("block " + Mission_val + "clear " + clearNum);

                    int[] Random = getRandomInt(1, 0, NoneFill.Count);

                    foreach (var item in Random)
                    {
                        NoneFill[item].SetBlockImage(UIManager.Instance.Sp_Blocks[block_Num - 1], 1, block_Num, clearNum - Mission_val - 1);
                    }
                }

                //랜덤으로 자리 배치
                if (block_Num >= 1)
                {
                    int[] Random = getRandomInt(block_Val, 0, NoneFill.Count);

                    foreach (var item in Random)
                    {
                        NoneFill[item].SetBlockImage(UIManager.Instance.Sp_Blocks[block_Num - 1], 1, block_Num, block_Hp);
                    }
                }
            }

            //////////////////////////////////////////////////////////////////////////////////
        }
    }
    /// <summary>
    /// 스테이지 별 정보 세팅
    /// </summary>
    public void Set_Star()
    {
        foreach (var item in stars)
        {
            item.sprite = UIManager.Instance.Sp_None_Star;
        }

        Clear_Stage_Info clear_Stage_Info = DataManager.Instance.state_Player.clear_Stage.Find(x => x.Stage_Id.Equals(stage_Id - 1));

        Img_Stage_Bg.sprite = sp_Stage_Bg[0];

        Color color;

        ColorUtility.TryParseHtmlString("#1A3868", out color);

        txt_stage_Num.color = color;

        if (clear_Stage_Info != null)
        {
            switch (clear_Stage_Info.Stage_Star)
            {
            case 0:
            case 1:

                Img_Stage_Bg.sprite = sp_Stage_Bg[0];

                ColorUtility.TryParseHtmlString("#1A3868", out color);

                txt_stage_Num.color = color;

                break;

            case 2:
                Img_Stage_Bg.sprite = sp_Stage_Bg[1];

                ColorUtility.TryParseHtmlString("#633D17", out color);

                txt_stage_Num.color = color;

                break;

            case 3:
                Img_Stage_Bg.sprite = sp_Stage_Bg[2];

                ColorUtility.TryParseHtmlString("#561610", out color);

                txt_stage_Num.color = color;

                break;

            default:
                break;
            }


            for (int i = 0; i < clear_Stage_Info.Stage_Star; i++)
            {
                stars[i].sprite = UIManager.Instance.Sp_Star;
            }
        }
    }