В общем то проще простого
- как создать объекты я так понимаю вы знаете.
- как создать список координат тоже
Код не точный , а просто показать принцип
- цилк - по количеству объектов , которые хотим сгенерировать.
- выбирает рандомную позицию в списке
- генерируем в этой позиции объект
- удаляем эту позицию из списка (в этом месте больше уже не сгенерируем, и в следующих раз выбирать будет из меньшего числа доступных позиций)
for(i=0;i<NeededNumdersOfObject;i++)
{
int randomNumber = RandomRange(0,listOfTransforms.Count);
Instantiate(Object,listOfTransforms[randomNumber ].position,....);
listOfTransforms.RemoveAt(randomNumber)
}
только проверьте что точек размещения в списке больше, чем число объектов которые хотите сгенерировать.
и еще можно делать копию списка , так как после удаления из него элементов в процессе генерации - повторно его уже не используешь.