Есть код:
Синтаксис:
Используется csharp
void Start ()
{
for(int i = 0; i < level; i++)
{
Spawn();
}
}
void Spawn ()
{
GameObject asteroid = asteroids[Random.Range(0, asteroids.Length)];
float sc1 = Random.Range(minScale, maxScale);
Vector3 scale = new Vector3(sc1, sc1, sc1);
GameObject ast = Instantiate(asteroid, PeekLocationOnRadius(Vector2.zero, m_SpawnRadius), Quaternion.identity) as GameObject;
ast.transform.localScale = scale;
}
Vector2 PeekLocationOnRadius (Vector2 origin, float radius)
{
var rand = Random.insideUnitCircle.normalized * radius;
return origin + new Vector2(rand.x, rand.y);
}
{
for(int i = 0; i < level; i++)
{
Spawn();
}
}
void Spawn ()
{
GameObject asteroid = asteroids[Random.Range(0, asteroids.Length)];
float sc1 = Random.Range(minScale, maxScale);
Vector3 scale = new Vector3(sc1, sc1, sc1);
GameObject ast = Instantiate(asteroid, PeekLocationOnRadius(Vector2.zero, m_SpawnRadius), Quaternion.identity) as GameObject;
ast.transform.localScale = scale;
}
Vector2 PeekLocationOnRadius (Vector2 origin, float radius)
{
var rand = Random.insideUnitCircle.normalized * radius;
return origin + new Vector2(rand.x, rand.y);
}
Для краткости: в нем выбирается объект из массива создается с рандомными параметрами и помещается на сцену на определенном радиусе от заданной точки. Все это помещается в цикл и спаунится определенное кол-во раз.
Проблема: объекты могут заспауниться в одинаковой точке.
Вопрос: Как поместить в массив проверку по имеющейся на сцене точке, чтобы не было совпадений?
(Сам профан в си-шарпе, а мой программист еще не родился) Всем спасибо за ответы.