public static GameObject SetCreepData(GameObject obj, PoolManager.PhotonPool pool, GameObject poolParent, Queue <GameObject> objectPool)
    {
        var creep = obj.GetComponent <MatchSystem.Creep>();

        if (creep == null)
        {
            return(null);
        }

        pool.Name       = pool.creep.Prefab.name;
        poolParent.name = pool.creep.Prefab.name + "Pool";

        creep.Health    = pool.creep.Health;
        creep.Attack    = pool.creep.Attack;
        creep.Defense   = pool.creep.Defense;
        creep.CreepName = pool.creep.Prefab.name;
        creep.Income    = pool.creep.Income;
        creep.CreepCost = pool.creep.Cost;

        Debug.Log("Creating " + creep + " " + PhotonNetwork.LocalPlayer.NickName);
        creep.gameObject.SetActive(false);
        obj.transform.SetParent(poolParent.transform);
        obj.name = obj.name.Replace("(Clone)", ""); //gets rid of (Clone) on a newly instantiated object so it can pool correctly
        objectPool.Enqueue(obj);

        return(obj);
    }
    public static GameObject SetTowerData(GameObject obj, PoolManager.PhotonPool pool, GameObject poolParent, Queue <GameObject> objectPool)
    {
        var turret = obj.GetComponent <Turret>();

        if (turret == null)
        {
            return(null);
        }

        pool.Name       = pool.tower.prefab.name;
        poolParent.name = pool.tower.prefab.name + "Pool";

        turret.damage           = pool.tower.damage;
        turret.fireRate         = pool.tower.fireRate;
        turret.range            = pool.tower.range;
        turret.projectilePrefab = pool.tower.projectilePrefab;
        turret.projectileSpeed  = pool.tower.projectileSpeed;
        turret.shootEffect      = pool.tower.shootEffect;
        turret.impactEffect     = pool.tower.impactEffect;
        turret.towerName        = pool.tower.prefab.name;
        turret.TowerCost        = pool.tower.cost;

        Debug.Log("Creating " + obj + " " + PhotonNetwork.LocalPlayer.NickName);
        obj.transform.SetParent(poolParent.transform);
        obj.name = obj.name.Replace("(Clone)", ""); //gets rid of (Clone) on a newly instantiated object so it can pool correctly

        obj.SetActive(false);
        objectPool.Enqueue(obj);

        return(obj);
    }
    public static GameObject SetObjectData(GameObject obj, PoolManager.PhotonPool pool, GameObject poolParent, Queue <GameObject> objectPool)
    {
        var proj = obj.GetComponent <Projectile>();

        pool.Name       = pool.gameObj.name;
        poolParent.name = pool.gameObj.name + "Pool";

        if (proj)
        {
            proj.ProjectileName = pool.gameObj.name;
        }

        Debug.Log("Creating " + obj + " " + PhotonNetwork.LocalPlayer.NickName);
        obj.transform.SetParent(poolParent.transform);
        obj.name = obj.name.Replace("(Clone)", ""); //gets rid of (Clone) on a newly instantiated object so it can pool correctly
        obj.SetActive(false);
        objectPool.Enqueue(obj);

        return(obj);
    }