c# - Only the last gameobject is renamed after the loop? -
i save gameobject in .txt file. when try load map textfile, works intended, except gameobject.name
. objects placed @ right position , tag. here part of code.
void onmousedown(){ if (globalmanager.mapname != "") { string path = @"c:\users\ashes\desktop\rebel2\" + globalmanager.mapname + ".txt"; if (loadedmap == globalmanager.mapname) { txtmessage2 = "this map open"; startcoroutine (message1 ()); } if (!file.exists (path)) { txtmessage2 = "this map name not exist, place object create map"; startcoroutine (message1 ()); } if (file.exists (path)) { if (loadedmap != globalmanager.mapname) { { loadedmap = globalmanager.mapname; gameobject[] tree = gameobject.findgameobjectswithtag ("tree"); foreach (gameobject item in tree) { destroy (item); } gameobject[] house = gameobject.findgameobjectswithtag ("house"); foreach (gameobject item in house) { destroy (item); } gameobject[] road = gameobject.findgameobjectswithtag ("road"); foreach (gameobject item in road) { destroy (item); } gameobject[] farm = gameobject.findgameobjectswithtag ("farm"); foreach (gameobject item in farm) { destroy (item); } gameobject[] wall = gameobject.findgameobjectswithtag ("wall"); foreach (gameobject item in wall) { destroy (item); } } using (streamreader sr = file.opentext(path)) { string s = ""; while ((s = sr.readline()) != null) { overloadtxt = s; string[] splitarray = overloadtxt.split (' '); loadstr1 = splitarray [0]; loadstr2 = splitarray [1]; loadstr3 = splitarray [2]; loadstr4 = splitarray [3]; loadstr5 = splitarray [4]; loadstr6 = splitarray [5]; if (loadstr2 == "house") { instantiate (house); if (loadstr6 == "luxhouse") { house.getcomponent<spriterenderer> ().sprite = img1; } if (loadstr6 == "house1") { house.getcomponent<spriterenderer> ().sprite = img2; } if (loadstr6 == "greentex") { house.getcomponent<spriterenderer> ().sprite = img3; } house.tag = "house"; house.transform.localscale = new vector3 (0.5f, 0.5f, 0); house.transform.eulerangles = new vector3 (0, 0, float.parse (loadstr5)); house.transform.position = new vector3 (float.parse (loadstr3), float.parse (loadstr4), 0); globalmanager.inthousename ++; house.name = loadstr1; debug.log (house.name); } if (loadstr2 == "road") { instantiate (road); if (loadstr6 == "dirthroad") { road.getcomponent<spriterenderer> ().sprite = img4; } road.tag = "road"; road.transform.localscale = new vector3 (0.5f, 0.3f, 0); road.transform.eulerangles = new vector3 (0, 0, float.parse (loadstr5)); road.transform.position = new vector3 (float.parse (loadstr3), float.parse (loadstr4), 0); globalmanager.introadname ++; road.name = loadstr1; debug.log (road.name); } } } } } } }
the debug.log
shows right thing, house1,house2,road1,house3... last gameobject.name has change applied.
i'm clueless mechanic.
Comments
Post a Comment