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 to comment
Share on other sites

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 to comment
Share on other sites

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 to comment
Share on other sites

wenn ich das richtig sehe tut man die hier aber auch schon vorher im editor assignen und ich möchte

für jedes GameObject mit dem Tag bauplatss (z geht nicht...) in jeder frame die nachricht WoodMenge schicken

 

ich meine ints bringen mir nicht so viel und mit schleifen und arrays kenne ich mich nicht aus :(

Link to comment
Share on other sites

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 to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...