public CharacterManager()
    {
        VisualCharacter.S_Initialize();
        Item.S_Initialize();

        pCharactersContainer = GameObject.Find("Heroes").transform;
        m_pHeroesBUS         = new List <Hero>(3);
        m_pHeroesBUS.Add(new Hero("Lucia", Vector3.zero, Character.Side.GoodGuys));
        m_pHeroesBUS.Add(new Hero("Richard", Vector3.one, Character.Side.GoodGuys));
        m_pHeroesBUS.Add(new Hero("Nataly", -Vector3.one, Character.Side.GoodGuys));

        int i = 0;

        for (i = 0; i < m_pHeroesBUS.Count; i++)
        {
            m_pHeroesBUS[i].OnDeath += DeadHeroHandle;
        }

        m_pHeroesPRES = new List <VisualHero>(3);

        GameObject pRes = Resources.Load("Heroes/Hero") as GameObject;

        CreateHero(pRes, m_pHeroesBUS[0], Weapon.WeaponType.Sword, Armor.ArmorType.Heavy);
        CreateHero(pRes, m_pHeroesBUS[1], Weapon.WeaponType.Bow, Armor.ArmorType.Medium);
        CreateHero(pRes, m_pHeroesBUS[2], Weapon.WeaponType.Staff, Armor.ArmorType.Light);

        SelectHero(0);


        pEnemiesContainer = GameObject.Find("Enemies").transform;
        pEnemiesPRES      = pEnemiesContainer.GetComponentsInChildren <VisualEnemy>();

        for (i = 0; i < pEnemiesPRES.Length; i++)
        {
            VisualEnemy pVisualEnemy = pEnemiesPRES[i];
            GameObject  pGameObject  = pVisualEnemy.gameObject;
            pVisualEnemy.Initialize(new Enemy(pGameObject.name, pGameObject.transform.position, Character.Side.BadGuys));
        }
    }
 //Get the distance from the selected character to the enemy
 public Vector3 VectorFromSelectedChar(VisualEnemy enemy)
 {
     return(CharacterList[_selectedCharacterID].VCharacter.transform.position - enemy.transform.position);
 }