Wpis z mikrobloga

#unity3d #pomocy

dlaczego jak mam
void .....
GameObject zwrot = listaObiektowZwrotna.Dequeue ();
zwrot.GetComponent ().listaVectorow = listaVectorow;
zwrot.GetComponent ().StartCoroutine ("tr");

dlaczego jak mam taka funkcje to podmienia mi vectory dla wszystkich gameobjectów na scenie. zamiast tylko dla pierwszego z kolejki ?
  • 5
@pr0t3r: nie widzę problemów w tym kodzie

ale mam rade, może da się zapisywać z kolejce tankmove zamiast gameobject? Na wywolaniu fukncji GetComponent() bedziesz tracil duzo czasu, jeżeli robisz to często to będą problemy z wydajnością.

Lepiej zrobić kolejkę z tankmove, a ajk pozniej potrezbujesz obiektu to odwolujesz sie tankmove.gameObject
@pr0t3r: a moze gdzies przypisujesz ten sam vector do wszystkich? chodzi mi o to ze moga miec ta sama referencje

np w takim przypadku:
ListaVektorow lista = new ListaVektorow();
foreach (ListaVektorow lv in tankmoves){
lv = lista;
}

tutaj dla kazdego tankmove.listavektorow przypisujemy referencje do tego samego obiektu, oznacza to ze kazdy tankmove.listavektorow jaki mamy wskazuje na ten sam obiekt. Jeżeli zmienimy dane w jednym lestavektorow to tak naprawde wszystkie dane