void Update() { // Si la partida no ha acabado, el MasterClient genera objetos. if (PhotonNetwork.IsMasterClient && !logic.MatchEnded) { // Fórmula de Spawn, tiene en cuenta tiempo entre generaciones // distancia a ambos jugadores y si está vacío el punto donde intenta. time += Time.deltaTime; float interval = numElements < minElements ? fastInterval : normalInterval; if (time > interval && numElements < maxElements) { // Modelo y punto escogidos al azar GameObject model = models[Random.Range(0, numModels)]; Spawn spawn = spawnpoints[Random.Range(0, numSpawnpoints)]; // Distancias float d1 = Vector3.Distance(spawn.Position, GoodGuy.transform.position); float d2 = Vector3.Distance(spawn.Position, BadGuy.transform.position); // Si se cumplen las condiciones lo genera. if (spawn.IsEmpty && d1 > securityDistance && d2 > securityDistance && Mathf.Abs(d1 - d2) <= maxDistanceDifference) { spawn.GenerateChild(model, randomRotation); numElements++; time = 0; } } } }