Hermetes Geschrieben 26. November 2017 Melden Share Geschrieben 26. November 2017 Hallo zusammen! Komme leider nicht auf eine Lösung Ich wollte zu Spielbeginn meine Starteinheiten auf ihren Startpositionen zuweisen. In meinem Code werden 3 Starteinheiten plötzlich zu 9 Einheiten. Obwohl ich doch mit "i" angegeben habe , das sich nur die Startplätze erhöhen soll.Nun habe ich jeweils 3 Einheiten auf einem Startplatz.(!?) 6 Startplätze (Tranform Array)3 Einheiten zum Start (GameObject List) Danke euch schon mal für´s nachdenken! foreach (var p in Players) { //Geht die Liste StartingUnits von Players durch foreach (var u in p.StartingUnits) { // u = Einheiten // go = Instantiate Player // benutzt count for (int i = 0; i < p.StartingUnits.Count; i++) { var go = (GameObject)GameObject.Instantiate(u, p.Location[i].transform.position, p.Location[i].transform.rotation); //Figur1 // go wird zu player var player = go.AddComponent<Player>(); Debug.Log("RTSManager Variable u" + u); Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Zer0Cool Geschrieben 26. November 2017 Melden Share Geschrieben 26. November 2017 Du hast 2 Schleifen. Wenn Players beispielsweise 3 Objekte enthält hast du 3x3 Durchläufe in der inneren Schleife. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Hermetes Geschrieben 26. November 2017 Autor Melden Share Geschrieben 26. November 2017 Hi & Danke für die Antwort! Die Players List ist eine Liste wieviel Spieler teilnehmen. Also Player1 ist der menschliche Spieler und die AI wäre Player2 zum Beispiel. !? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Zer0Cool Geschrieben 26. November 2017 Melden Share Geschrieben 26. November 2017 Das kann ich dir nicht sagen, ich kenne deine Umgebung nicht. Du kannst dir ja mal die Daten in der Console ausgeben lassen: foreach (var p in Players) { Debug.Log(p); // oder p.xxx (ich kenne diese Struktur nicht) //Geht die Liste StartingUnits von Players durch foreach (var u in p.StartingUnits) { // u = Einheiten // go = Instantiate Player // benutzt count for (int i = 0; i < p.StartingUnits.Count; i++) { var go = (GameObject)GameObject.Instantiate(u, p.Location[i].transform.position, p.Location[i].transform.rotation); //Figur1 // go wird zu player var player = go.AddComponent<Player>(); Debug.Log("RTSManager Variable u" + u); Wenn dann dieser Log 3x ausgegeben wird, wird diese Schleife 3x durchlaufen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Hermetes Geschrieben 27. November 2017 Autor Melden Share Geschrieben 27. November 2017 Hm, ja es potenziert sich immer mit den Elementen der Liste. Dann versuche ich erstmal mit 1x Start Einheit und instanziiere es später. Bis wir auf eine andere Möglichkeit kommen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.