Хорошо, ребята, я немного смущен этой штукой. Я покажу вам код, с которым у меня проблемы.Передача метода с типом возвращаемого значения в цикле for
Так у меня есть класс CellMap, который имеет этот метод:
public Vector3 GetFreeCell()
{
Vector3 result = new Vector3();
if (mOccupiedPoint != null)
{
result = (Vector3)mOccupiedPoint[0];
mOccupiedPoint.RemoveAt(0);
}
return result;
}
Следующая я есть мой класс WorldMap, который имеет этот метод:
private void AddObject(GameObjectBase obj, int times, Vector3 position)
{
for (int i = 0; i < times; i++)
{
Vector3 tempPos = position;
AddObject(obj, tempPos);
}
}
Итак, теперь, когда я прохожу для параметра Vector3 GetFreeCell() в моем методе AddObject:
private CellMap mCellMap;
public WorldMap()
{
CreateCellMap(100, 1, 100);
AddObject(new DarkForestTreeA(), 1000, mCellMap.GetFreeCell());
}
Я получаю то же самое старое значение Vector3 от t он mCellMap.GetFreeCell() я могу изменить метод AddObject(), как:.
private void AddObject(GameObjectBase obj, int times)
{
for (int i = 0; i < times; i++)
{
AddObject(obj, mCellMap.GetFreeCell());
}
}
, но я хочу, чтобы сохранить параметр Vector3. Может кто-нибудь помочь мне и дать мне подсказку, как заставить метод GetFreeCell() выполнить в цикле for, но передать его только как параметр?
Удаление из передней части 'List' неэффективно, рассмотрите возможность использования очереди или связанного списка. – Lee
Спасибо за совет! –