public void loadEnemy()
    {
        AutoDestroy.destroyChildren(selectedRegionPanel);
        infoTower.gameObject.SetActive(false);
        infoEnemy.gameObject.SetActive(true);

        guideType = UIGuideButton.ENEMY;

        target = null;

        //set grid
        UIGrid grid = selectedRegionPanel.GetComponent <UIGrid>();

        grid.maxPerLine    = PlayConfig.GridGuideEnemy.MaxPerLine;
        grid.cellWidth     = PlayConfig.GridGuideEnemy.CellWidth;
        grid.cellHeight    = PlayConfig.GridGuideEnemy.CellHeight;
        grid.enabled       = true;
        grid.repositionNow = true;

        EnemyController enemyController = Resources.Load <GameObject>("Prefab/Enemy/Enemy").GetComponent <EnemyController>();

        int length = enemies.Length;

        foreach (System.Collections.Generic.KeyValuePair <string, EnemyData> iterator in ReadDatabase.Instance.EnemyInfo)
        {
            GameSupportor.transferEnemyData(enemyController, iterator.Value);

            GameObject enemyGuide = Instantiate(PlayManager.Instance.modelPlay.EnemyGuide) as GameObject;
            enemyGuide.transform.parent = selectedRegionPanel.transform;
            enemyGuide.name             = enemyController.name;

            enemyGuide.GetComponent <UIStretch>().container = selectedRegionPanel;

            EnemyGuideController controller = enemyGuide.GetComponent <EnemyGuideController>();
            controller.ID      = enemyController.ID;
            controller.visible = PlayerInfo.Instance.listEnemy[enemyController.ID];

            //set icon
            if (controller.visible)
            {
                controller.Icon.mainTexture = Resources.Load <Texture>("Image/Enemy/00 Guide Icon/" + enemyController.ID.ToLower());
            }

            if (target == null && controller.visible)
            {
                target = enemyGuide;
            }
        }
        if (target != null)
        {
            target.GetComponent <EnemyGuideController>().setColor(true);
        }

        loadEnemyInfo();
    }
    public void loadEnemyInfo()
    {
        if (target != null)
        {
            //AutoDestroy.destroyChildren(InfoPanel, "Name");

            //active tower name
            if (!infoName.gameObject.activeSelf)
            {
                infoName.gameObject.SetActive(true);
            }

            EnemyGuideController targetController = target.GetComponent <EnemyGuideController>();

            int             length          = ReadDatabase.Instance.EnemyInfo.Count;
            GameObject      model           = Resources.Load <GameObject>("Prefab/Enemy/Enemy");
            EnemyController enemyController = model.GetComponent <EnemyController>();

            GameSupportor.transferEnemyData(enemyController, ReadDatabase.Instance.EnemyInfo[targetController.ID]);
            EnemyGuideInfoController info = infoEnemy.GetComponent <EnemyGuideInfoController>();
            info.Image.mainTexture = targetController.Icon.mainTexture;
            info.labelLevel.text   = enemyController.level.ToString();
            info.labelHP.text      = enemyController.attribute.HP.Max.ToString();
            info.labelDEF.text     = enemyController.attribute.DEF.ToString();
            info.labelCoin.text    = enemyController.money.ToString();
            info.labelRegion.text  = enemyController.region.ToString();
            info.labelSpeed.text   = PlayConfig.getSpeedString(enemyController.speed);
            //set visible boss icon
            if (enemyController.level >= 6)
            {
                info.boss.gameObject.SetActive(true);
            }
            else
            {
                info.boss.gameObject.SetActive(false);
            }

            //set level sprite

            info.spriteLevel.spriteName = "play-level-" + enemyController.level;

            //set name
            infoName.text = enemyController.attribute.Name;

            //set name color
            Color[] colors = PlayConfig.getColorEnemyName(enemyController.level);
            infoName.color       = colors[0];
            infoName.effectColor = colors[1];
        }
        else
        {
            EnemyGuideInfoController info = infoEnemy.GetComponent <EnemyGuideInfoController>();
            info.Image.mainTexture = Resources.Load <Texture>("Image/Enemy/00 Guide Icon/0x0");
            info.labelLevel.text   = "?";
            info.labelHP.text      = "???";
            info.labelDEF.text     = "???";
            info.labelCoin.text    = "???";
            info.labelRegion.text  = "???";
            info.labelSpeed.text   = "???";
            info.boss.gameObject.SetActive(false);
            info.spriteLevel.spriteName = "play-level-123";

            //set name
            infoName.text = GameConfig.GameName.ToUpper();

            //set name color
            infoName.color       = Color.white;
            infoName.effectColor = Color.black;
        }
    }