Jump to content
Unity Insider Forum

Objekt per Code erzeugen


tobias583

Recommended Posts

Hallo ich bin gerade dabei ein Spiel zu programmieren dabei möchte ich gerne Objekte per Code erstellen.

Dabei habe ich diesen Code angewendet

	public void SetCurrentBuildingLoad (GameObject building){
	
		Gebaeude_plaziertload = PlayerPrefs.GetInt ("Gebaeude_plaziert");
		
		for (int i = 0; i < Gebaeude_plaziertload; i++) {
		
			x = PlayerPrefs.GetFloat ("x" + Gebaeude_gen.ToString ());
			y = PlayerPrefs.GetFloat ("y" + Gebaeude_gen.ToString ());
			z = PlayerPrefs.GetFloat ("z" + Gebaeude_gen.ToString ());

			currentBuilding = ((GameObject) Instantiate (building)).transform;
					
			currentBuilding.position = new Vector3 (x, y, z);

		
			

					currentBuilding = null;
			x = 0;
			y = 0;
			z = 0;
				
			
		}

Aber sobald ich die Funktion ausführe erstellt zwar Unity die gewünschte Anzahl an Objekten in der Hierarchy aber ich sehe nur eins jetzt ist die Frage was ist Falsch. Ich habe 2 Vermutungen:

Die 1 wäre das Unity alle Objekte an der gleichen stelle erstellt.

Die 2 wäre das Unity das erste Objekt sichtbar macht aber die anderen nicht.

 

Könnte mir dabei vielleicht jemand helfen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

x = PlayerPrefs.GetFloat ("x" + Gebaeude_gen.ToString ());
y = PlayerPrefs.GetFloat ("y" + Gebaeude_gen.ToString ());
z = PlayerPrefs.GetFloat ("z" + Gebaeude_gen.ToString ());

Theorie 1 stimmt,  da "Gebaude_gen" immer den gleichen Wert in deiner Schleifer hat, wird auch immer der gleiche Wert aus den PlayerPrefs pro Koordinate geholt und damit ändert sich die Position pro Gebäude nicht. 

PS:
Ob deine Gebäude sichtbar sind siehst du, wenn du einfach nur ein Gebäude in deiner Szene im Szenenfenster verschiebst.
Hilfreich wäre auch eine Debugausgabe:

currentBuilding.position = new Vector3 (x, y, z);
print("Schleifendurchlauf: " + i + " --- Position X: " + x + "Position Y: " + y + "Position Z: " + y);

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...
×
×
  • Neu erstellen...