//random enemy and spawn it to each position
    public void RandomSpawnEnemy()
    {
        /*if (currentLv == 1)
         * {
         *  /*Debug.Log("sss " + enemiesToSpawnLvl_01.Length + " " + enemySpawnPoint.Length);
         *  //Reorder enemyList
         *  for (int i = 0; i < enemiesToSpawnLvl_01.Length - 1; i++)
         *  {
         *      int rnd = Random.Range(i, enemiesToSpawnLvl_01.Length - 1);
         *      ScriptableEnemy.EnemyName tempEnemyIdToSpawn = enemiesToSpawnLvl_01[rnd];
         *      enemiesToSpawnLvl_01[rnd] = enemiesToSpawnLvl_01[i];
         *      enemiesToSpawnLvl_01[i] = tempEnemyIdToSpawn;
         *  }
         *
         *  //replace last 3 id with 0
         *  enemiesToSpawnLvl_01[enemySpawnPoint.Length - 3] = 0;
         *  enemiesToSpawnLvl_01[enemySpawnPoint.Length - 2] = 0;
         *  enemiesToSpawnLvl_01[enemySpawnPoint.Length - 1] = 0;
         *
         *  /*for (int i = 0; i < enemiesToSpawnLvl_01.Length; i++)
         *  {
         *      Debug.Log("enemiesToSpawnLvl_01 " + i + " : " + enemiesToSpawnLvl_01[i]);
         *  }*/

        //reorder enemylist again

        /*for (int i = 0; i < enemySpawnPoint.Length - 1; i++)
         * {
         *  int rnd = Random.Range(i, enemiesToSpawnLvl_01.Length);
         *  ScriptableEnemy.EnemyName tempEnemyIdToSpawn = enemiesToSpawnLvl_01[rnd];
         *  enemiesToSpawnLvl_01[rnd] = enemiesToSpawnLvl_01[i];
         *  enemiesToSpawnLvl_01[i] = tempEnemyIdToSpawn;
         *
         *  //Debug.Log("enemiesToSpawnLvl_01 " + i + " : " + enemiesToSpawnLvl_01[i]);
         *  switch (enemiesToSpawnLvl_01[i])
         *  {
         *      case 0:
         *          break;
         *      case ScriptableEnemy.EnemyName.Alcohol:
         *          Instantiate(Alcohol, enemySpawnPoint[i].position, Quaternion.identity);
         *          Debug.Log("spawn : Alcohol ");
         *          break;
         *      case ScriptableEnemy.EnemyName.Glue:
         *          Instantiate(Glue, enemySpawnPoint[i].position, Quaternion.identity);
         *          break;
         *      case ScriptableEnemy.EnemyName.Opium:
         *          Instantiate(Opium, enemySpawnPoint[i].position, Quaternion.identity);
         *          break;
         *      case ScriptableEnemy.EnemyName.Amphetamine:
         *          Instantiate(Amphetamine, enemySpawnPoint[i].position, Quaternion.identity);
         *          break;
         *      case ScriptableEnemy.EnemyName.Cocaine:
         *          Instantiate(Cocaine, enemySpawnPoint[i].position, Quaternion.identity);
         *          break;
         *      case ScriptableEnemy.EnemyName.Ecstasy:
         *          Instantiate(Ecstasy, enemySpawnPoint[i].position, Quaternion.identity);
         *          break;
         *      case ScriptableEnemy.EnemyName.Mitragynine:
         *          Instantiate(Mitragynine, enemySpawnPoint[i].position, Quaternion.identity);
         *          break;
         *      case ScriptableEnemy.EnemyName.MagicMushroom:
         *          Instantiate(MagicMushroom, enemySpawnPoint[i].position, Quaternion.identity);
         *          break;
         *      default:
         *          break;
         *  }
         * }
         * }*/
        //add enemies&space to array
        for (int i = 0; i < enemySpawnRate.Length; i++)
        {
            sumOfEnemySpawnRate += enemySpawnRate[i].spawnRate;
        }

        enemiesToSpawn = new ScriptableEnemy.EnemyName[enemySpawnPoint.Length];

        for (int i = 0; i < enemySpawnPoint.Length; i++)
        {
            if (i < numOfEnemyToSpawn)
            {
                float rnd = Random.Range(0, sumOfEnemySpawnRate);
                //Debug.Log("Spawn(rnd) : " + rnd);

                //add enemy
                int   enemyIndex = 0;
                float counter    = 0;

                while (rnd > counter)
                {
                    counter    += enemySpawnRate[enemyIndex].spawnRate;
                    enemyIndex += 1;
                }

                switch (enemyIndex)
                {
                case 1:
                    enemiesToSpawn[i] = ScriptableEnemy.EnemyName.Alcohol;
                    break;

                case 2:
                    enemiesToSpawn[i] = ScriptableEnemy.EnemyName.Glue;
                    break;

                case 3:
                    enemiesToSpawn[i] = ScriptableEnemy.EnemyName.Opium;
                    break;

                case 4:
                    enemiesToSpawn[i] = ScriptableEnemy.EnemyName.Amphetamine;
                    break;

                case 5:
                    enemiesToSpawn[i] = ScriptableEnemy.EnemyName.Cocaine;
                    break;

                case 6:
                    enemiesToSpawn[i] = ScriptableEnemy.EnemyName.Ecstasy;
                    break;

                case 7:
                    enemiesToSpawn[i] = ScriptableEnemy.EnemyName.Mitragynine;
                    break;

                case 8:
                    enemiesToSpawn[i] = ScriptableEnemy.EnemyName.MagicMushroom;
                    break;

                case 9:
                    enemiesToSpawn[i] = ScriptableEnemy.EnemyName.Marijuana;
                    break;

                default:
                    break;
                }
                Debug.Log("rnd : " + rnd + "/" + counter + " spawn : " + enemyIndex);
            }
            else
            {
                enemiesToSpawn[i] = ScriptableEnemy.EnemyName.none;
            }
        }

        //suffle
        for (int i = 0; i < enemySpawnPoint.Length - 1; i++)
        {
            int rnd = Random.Range(i, enemiesToSpawn.Length);
            ScriptableEnemy.EnemyName tempEnemyIdToSpawn = enemiesToSpawn[rnd];
            enemiesToSpawn[rnd] = enemiesToSpawn[i];
            enemiesToSpawn[i]   = tempEnemyIdToSpawn;

            //Debug.Log("enemiesToSpawnLvl_01 " + i + " : " + enemiesToSpawnLvl_01[i]);
            switch (enemiesToSpawn[i])
            {
            case 0:
                break;

            case ScriptableEnemy.EnemyName.Alcohol:
                Instantiate(Alcohol, enemySpawnPoint[i].position, Quaternion.identity);
                Debug.Log("spawn : Alcohol ");
                break;

            case ScriptableEnemy.EnemyName.Glue:
                Instantiate(Glue, enemySpawnPoint[i].position, Quaternion.identity);
                break;

            case ScriptableEnemy.EnemyName.Opium:
                Instantiate(Opium, enemySpawnPoint[i].position, Quaternion.identity);
                break;

            case ScriptableEnemy.EnemyName.Amphetamine:
                Instantiate(Amphetamine, enemySpawnPoint[i].position, Quaternion.identity);
                break;

            case ScriptableEnemy.EnemyName.Cocaine:
                Instantiate(Cocaine, enemySpawnPoint[i].position, Quaternion.identity);
                break;

            case ScriptableEnemy.EnemyName.Ecstasy:
                Instantiate(Ecstasy, enemySpawnPoint[i].position, Quaternion.identity);
                break;

            case ScriptableEnemy.EnemyName.Mitragynine:
                Instantiate(Mitragynine, enemySpawnPoint[i].position, Quaternion.identity);
                break;

            case ScriptableEnemy.EnemyName.MagicMushroom:
                Instantiate(MagicMushroom, enemySpawnPoint[i].position, Quaternion.identity);
                break;

            case ScriptableEnemy.EnemyName.Marijuana:
                Instantiate(Marijuana, enemySpawnPoint[i].position, Quaternion.identity);
                break;

            default:
                break;
            }
        }
    }
 public EnemyToSpawn(ScriptableEnemy.EnemyName enemyName, float spawnRate)
 {
     this.enemyName = enemyName;
     this.spawnRate = spawnRate;
 }
    //random enemy and spawn it to each position
    public void RandomSpawnEnemy()
    {
        if (currentLv == 1)
        {
            Debug.Log("sss " + enemiesToSpawnLvl_01.Length + " " + enemySpawnPoint.Length);
            //Reorder enemyList
            for (int i = 0; i < enemiesToSpawnLvl_01.Length - 1; i++)
            {
                int rnd = Random.Range(i, enemiesToSpawnLvl_01.Length - 1);
                ScriptableEnemy.EnemyName tempEnemyIdToSpawn = enemiesToSpawnLvl_01[rnd];
                enemiesToSpawnLvl_01[rnd] = enemiesToSpawnLvl_01[i];
                enemiesToSpawnLvl_01[i]   = tempEnemyIdToSpawn;
            }

            //replace last 3 id with 0
            enemiesToSpawnLvl_01[enemySpawnPoint.Length - 3] = 0;
            enemiesToSpawnLvl_01[enemySpawnPoint.Length - 2] = 0;
            enemiesToSpawnLvl_01[enemySpawnPoint.Length - 1] = 0;

            /*for (int i = 0; i < enemiesToSpawnLvl_01.Length; i++)
             * {
             *  Debug.Log("enemiesToSpawnLvl_01 " + i + " : " + enemiesToSpawnLvl_01[i]);
             * }*/

            //reorder enemylist again
            for (int i = 0; i < enemySpawnPoint.Length - 1; i++)
            {
                int rnd = Random.Range(i, enemiesToSpawnLvl_01.Length);
                ScriptableEnemy.EnemyName tempEnemyIdToSpawn = enemiesToSpawnLvl_01[rnd];
                enemiesToSpawnLvl_01[rnd] = enemiesToSpawnLvl_01[i];
                enemiesToSpawnLvl_01[i]   = tempEnemyIdToSpawn;

                //Debug.Log("enemiesToSpawnLvl_01 " + i + " : " + enemiesToSpawnLvl_01[i]);
                switch (enemiesToSpawnLvl_01[i])
                {
                case 0:
                    break;

                case ScriptableEnemy.EnemyName.Alcohol:
                    Instantiate(Alcohol, enemySpawnPoint[i].position, Quaternion.identity);
                    Debug.Log("spawn : Alcohol ");
                    break;

                case ScriptableEnemy.EnemyName.Glue:
                    Instantiate(Glue, enemySpawnPoint[i].position, Quaternion.identity);
                    break;

                case ScriptableEnemy.EnemyName.Opium:
                    Instantiate(Opium, enemySpawnPoint[i].position, Quaternion.identity);
                    break;

                case ScriptableEnemy.EnemyName.Amphetamine:
                    Instantiate(Amphetamine, enemySpawnPoint[i].position, Quaternion.identity);
                    break;

                case ScriptableEnemy.EnemyName.Cocaine:
                    Instantiate(Cocaine, enemySpawnPoint[i].position, Quaternion.identity);
                    break;

                case ScriptableEnemy.EnemyName.Ecstasy:
                    Instantiate(Ecstasy, enemySpawnPoint[i].position, Quaternion.identity);
                    break;

                case ScriptableEnemy.EnemyName.Mitragynine:
                    Instantiate(Mitragynine, enemySpawnPoint[i].position, Quaternion.identity);
                    break;

                case ScriptableEnemy.EnemyName.MagicMushroom:
                    Instantiate(MagicMushroom, enemySpawnPoint[i].position, Quaternion.identity);
                    break;

                default:
                    break;
                }
            }
        }
    }