Jump to content
Unity Insider Forum

Foreach GameObject mit Tag


QuesterDesura

Recommended Posts

Hallo,

 

ich versuche gerade in der function Update an alle GameObjecte mit dem Tag bauplatss eine Nachricht zu schicken(WoodMenge und den Parameter wood zu übergeben), aber leider habe ich noch nie Arrays und Lists außerhalb eines englischen( :/ ) Tutorials benutzt...

 

Ich habe schon gegoogelt aber nicht das was ich suche gefunden...

 

Das waren meine überlegungen:

 

 

function Update () {

for(GameObject.FindWithTag("bauplatss")) {

SendMessage("WoodMenge", wood, SendMessageOptions.DontRequireReceiver);

 

 

}

 

}

Aber leider funktioniert das nicht. :(

Ach ja JAVASCRIPT!!!

 

QuesterDesura

Link zu diesem Kommentar
Auf anderen Seiten teilen

http://docs.unity3d....me_Objects.html

 

// Find the OtherScript which is attached to any game object in the scene.
var other : OtherScript = FindObjectOfType(OtherScript);
other.DoSomething();

 

http://docs.unity3d....ctsWithTag.html

	gos =GameObject.FindGameObjectsWithTag"bauplatss");
for (var go : GameObject in gos)  {
	  go.GetComponent("scriptname").holzvariable="12";
} 

 

ungetestet

Link zu diesem Kommentar
Auf anderen Seiten teilen

1. Du solltest dir mal paar Tuts anschauen Schleifen gehören zu den Grundlagen

2. bauplatss ernsthaft? Normalerweise heißt es bauplatz

3. WoodMenge ist Denglisch wobei das Geschmackssache ist, ich persönlich mag es garnicht

 

Zu deinem Problem:

Du nutzt die for-Schleife was du aber wolltest ist doch die foreach - Schleife.

Mit einer foreach Schleife kannst du nur eine Aufzählung durchgehen (Arrays, Lists)

 

int[] intArray = new int[] { 0, 1,  2, 3 };

foreach (int i in intArray)
Debug.Log(i);

Link zu diesem Kommentar
Auf anderen Seiten teilen

GameObject.Find in Update zu verwenden ist ganz böse. Und es gibt in keinem Szenario und keiner Problemstellung die Notwendigkeit, dies zu tun. Hör auf die anderen, denn du schiesst dir damit selbst ins Knie, da du dir deine Performance unnötig selbst herunterziehst.

 

hm lesst euch es nochmal ganz in ruhe durch dann wisst ihr warum awake nicht geht...

weil im spiel neue dazukommen und alte gelöscht werden...

 

und die müssen auch immer up to date mit den Rohstoffen sein ;)

 

Dann wäre die saubere Möglichkeit, dass sich die neu erstellen Objekte in ihrer Awake Funktion vom anderen Script die Rohstoffe anfordern oder aber das Script, das sie instanziert, übernimmt die Rohstoffzuweisung.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...