class createВот за такое надо бить линейкой по пальцам. Вы зачем такое название класса выбрали? Это уже, сразу на этапе проектирования, потенциальное обиталище бага с зарезервированными где-то словами. И вообще, названия классов принято писать с большой буквы. Еще, create - это действие, именем класса обычно выбирают не действие, а существительное. Если так хочется, то, например, Creature, но никак не Create.
т.е. при добавлении/удалении gb так же нужно и делать с gbPos
Еще одна ошибка проектирования. Ну вот кто мешает-то сделать структуру:
Используется csharp
public struct GoElement {
public string ElmntName;
public GameObject GOObj;
public Vector3 pos;
}
и хранить эту структуру в листе, если так уж хочется:
Используется csharp
public List<GoElement> elmntList=new elntList<GoElement>();
И мы имеем для каждого объекта GO связанные с ним Vector3 и имя, если так уж хочется ТСу. Понадобится еще чего либо, например, несколько полей int, мы всегда можем это добавить в нашу структуру и наша структура и список от этого не развалится.
Единственный минус, что дефолтный редактор Unity не умеет такую структуру править в редакторе, решается написанием небольшого скрипта для редактора.