c# - Remove the last child from a gameobject -
i'm creating custom keyboard touchscreen application outputs image when button pressed. these images populate grid layout keep things organized linearly. need backspace button. i'm struggling backspace. i'm having trouble finding problem code attached. when hit deletekey button nothing happens, i'm not sure i'm going wrong want remove last child in messagepanel gameobject.
list<gameobject> msgsymbols = new list<gameobject>(); public string prefabpath; int msglength; vector3 symbolpos; gameobject symbolchar; gameobject msgpanel; vector3 symbolscale = new vector3(1.0f, 1.0f, 1.0f); gameobject[] symbolkeys; gameobject deletekey; void awake() { msgpanel = gameobject.findgameobjectwithtag("messagepanel"); symbolkeys = gameobject.findgameobjectswithtag("symbolkey"); deletekey = gameobject.findgameobjectwithtag("deletekey"); } #region ipointerclickhandler implementation public void onpointerclick (pointereventdata eventdata) { if (transform.comparetag("symbolkey")) { symbolchar = instantiate(resources.load (prefabpath)) gameobject; // instantiate symbol symbolchar.transform.setparent(msgpanel.transform); // parent grid symbolchar.transform.localscale = symbolscale; // set scale of objects added symbolpos = symbolchar.transform.position; // find position of objects in grid msglength = msgpanel.transform.childcount; foreach(transform t in msgpanel.transform) // create running list of symbol objects added messagepanel { msgsymbols.add(t.gameobject); } debug.log (msglength); } else if (transform.comparetag("deletekey")) { if(msgsymbols.count == 0) return; destroy(msgsymbols.lastordefault()); // old attempts // msgsymbols.removeat(msglength - 1); // destroy(msgsymbols[msgsymbols.count-1]); } } #endregion
check array has @ least 1 value before delete :
else if (transform.comparetag("deletekey")) { if(messagesymbols.count == 0) return; destroy(messagesymbols[messagesymbols.count-1]); }
Comments
Post a Comment