public GameObject ObjectToPool(PhotonPool pool)
    {
        if (pool.creep)
        {
            return(pool.creep.Prefab);
        }

        if (pool.tower)
        {
            return(pool.tower.prefab);
        }

        return(pool.gameObj ? pool.gameObj : null);
    }
    private static void SetObjectData(GameObject obj, PhotonPool pool)
    {
        if (obj.Equals(null))
        {
            Debug.LogWarning(obj + " does not have a data set! Check the PoolManager.");
            return;
        }

        var creep  = obj.GetComponent <MatchSystem.Creep>();
        var turret = obj.GetComponent <Turret>();
        var proj   = obj.GetComponent <Projectile>();

        if (creep)
        {
            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;
            creep.RefreshSendRate = pool.creep.RefreshSendRate;
            creep.SendLimit       = pool.creep.SendLimit;
            return;
        }

        if (turret)
        {
            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;
            return;
        }

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