IEnumerator SpawnObject(NELevel lv, GameObject ob, Vector3 point)
    {
        yield return(new WaitForSeconds(Random.Range(0, lv.delay)));

        GameObject g = Instantiate(ob, point, Quaternion.identity, targetPool.transform);

        g.transform.eulerAngles += (Vector3.forward * Random.Range(0, 360));
        g.GetComponent <Rigidbody2D>().velocity        = Vector2.up * lv.power;
        g.GetComponent <Rigidbody2D>().gravityScale    = lv.power * lv.power / distance;
        g.GetComponent <Rigidbody2D>().angularVelocity = Random.Range(-20f, 20f);
    }
    void Spawn(NELevel lv)
    {
        //곰 양 정하기
        int _amount = lv.amount[Random.Range(0, lv.amount.Length)];

        //타겟 인덱스 정하기
        int[] targetIndex = new int[lv.row * lv.colum];
        for (int i = 0; i < lv.row * lv.colum; ++i)
        {
            targetIndex[i] = i;
        }
        Shuffle(targetIndex);

        //열 정하기
        int[] _row = new int[lv.row];
        int[] tmp  = Enumerable.Range(0, spawnerLine.Length).ToArray();
        Shuffle(tmp);
        for (int i = 0; i < _row.Length; ++i)
        {
            _row[i] = tmp[i];
        }

        //오브젝트 생성
        int length = targetIndex.Length;

        for (int i = 0; i < length; ++i)
        {
            Vector3 sp    = spawnerLine[_row[targetIndex[i] / lv.colum]].transform.GetChild(0).position;
            Vector3 ep    = spawnerLine[_row[targetIndex[i] / lv.colum]].transform.GetChild(1).position;
            Vector3 point = sp + ((ep - sp) / (float)lv.colum) * ((targetIndex[i] % lv.colum) + 0.5f);
            if (i < _amount)
            {
                //곰 만들기
                StartCoroutine(SpawnObject(lv, target[lv.color > Random.Range(0f, 1f) ? 1 : 0], point));
            }
            else
            {
                //보록화시 만들기
                StartCoroutine(SpawnObject(lv, obstacle[lv.color > Random.Range(0f, 1f) ? 1 : 0], point));
            }
        }
    }