2016-11-18 4 views
-2

Ich habe fast mein Spiel fertig, ich möchte eine unendliche Anzahl von 2D-Quadrate für mein 2D-Spiel erstellen. Der folgende Code, den ich verwendet habe, funktioniert jedoch nicht, um ein einzelnes Quadrat unendlich zu spawnen.Unity - Infinite Spawn Ausgabe

using UnityEngine; 
using System.Collections; 

public class Spawner : MonoBehaviour 
{ 
    private GameObject[] locationsToSpawn; 
    private float counter = 0; 
    [SerializeField] 
    string[] listOfPossibleTags; 
    [SerializeField] 
    GameObject[] objectToSpawn; 
    [SerializeField] 
    float timeBetweenSpawns = 3.0f; 

    void Start() 
    { 
     locationsToSpawn = GameObject.FindGameObjectsWithTag("SpawnLocation"); 
    } 
    void Update() 
    { 
     counter += Time.deltaTime; 
     if (counter > timeBetweenSpawns) 
     { 
      GameObject spawnedObject; 
      spawnedObject = Instantiate(objectToSpawn[Random.Range(0, objectToSpawn.Length)], locationsToSpawn[Random.Range(0, locationsToSpawn.Length)].transform.position, Quaternion.identity) as GameObject; 
      spawnedObject.gameObject.tag = listOfPossibleTags[Random.Range(0, listOfPossibleTags.Length)]; 
      counter = 0; 
     } 
    } 
} 

Auch sieht mein Spiel wie folgt image

Also, was kann ich tun, fallen eine unendliche Anzahl von Plätzen zu schaffen? Ich bin kurz davor, das Spiel zu beenden.

+0

In welcher Weise scheitert Ihr Code? Welche Teile laufen wie erwartet und was ist das falsche Verhalten, das Sie beobachten? Bitte geben Sie weitere Einzelheiten an, da wir den Code nicht selbst ausführen können, um das herauszufinden. – Serlite

+0

Serlite ist korrekt, Sie müssen weitere Informationen bereitstellen. Der Code sieht so aus, als sollte er Spielobjekte erzeugen. Ich vermute jedoch, dass sie sich gegenseitig hervorbringen. Was ist der Wert von objectToSpawn.Length und locationsToSpawn.Length beim Debuggen? –

+0

Ich möchte ein Unavider-Spiel auf Unity machen. Wenn ich den Spawner-Code in das quadratische Objekt einfüge. Der Platz ist nicht spawing. –

Antwort

0

Basierend auf den Informationen, die Sie in Ihren Kommentaren angegeben haben, setzen Sie ein Skript auf ein Spielobjekt, das in Ihrer Szene nicht existiert. Wenn es keine Instanz Ihres Spielobjekts im Spiel gibt, wird Ihr Skript niemals ausgeführt. Setzen Sie das Skript auf etwas anderes, das Sinn ergibt und es wird ausgeführt.

Wenn Sie herausfinden möchten, was mit Ihrem Code nicht stimmt, verwenden Sie den Debugger. Sie werden Ihre Probleme viel einfacher finden!