Как уничтожить случайно созданные объекты и запоминать это?
По задумке необходимо при нажатии кнопки в случайном месте массива 3 строки х 4 столбца генерировать кнопку из набора префабов, а при нажатии на созданную кнопку удалять объект. Для предотвращения создания объектов в одном месте (не должны накладываться друг на друга) в каждую ячейку координат (enemiesList) добавляется признак +1. В методе destroyEnemies не получается правильно определять координаты и сравнивать их с теми, с которыми создан объект.
Прошу помочь решить проблему.
public void enemySpawn()
{
xRandom = Random.Range(0, enemiesX.Length);
yRandom = Random.Range(0, enemiesY.Length);
x = enemiesX[xRandom];
y = enemiesY[yRandom];
int counter = 0;
for (int i = 0; i < enemiesY.Length; i++)
{
for (int j = 0; j < enemiesX.Length; j++)
{
if (enemiesList[i, j] == 0)
{
counter++;
}
}
}
if (counter != 0)
{
if (enemiesList[yRandom, xRandom] != 0)
{
do
{
xRandom = Random.Range(0, enemiesX.Length);
yRandom = Random.Range(0, enemiesY.Length);
x = enemiesX[xRandom];
y = enemiesY[yRandom];
} while (enemiesList[yRandom, xRandom] != 0);
enemy = Instantiate(enemies[Random.Range(0, enemies.Length)], new Vector2(x, y), Quaternion.identity);
enemy.transform.SetParent(Canvas.transform, false);
enemy.GetComponent<RectTransform>().localPosition = new Vector2(x, y);
enemiesList[yRandom, xRandom]++;
}
else
{
enemy = Instantiate(enemies[Random.Range(0, enemies.Length)], new Vector2(x, y), Quaternion.identity);
enemy.transform.SetParent(Canvas.transform, false);
enemy.GetComponent<RectTransform>().localPosition = new Vector2(x, y);
enemiesList[yRandom, xRandom]++;
}
}
}
public void destroyEnemies()
{
float x = gameObject.GetComponent<Transform>().position.x;
float y = gameObject.GetComponent<Transform>().position.y;
for (int i = 0; i < enemiesY.Length; i++)
{
for (int j = 0; j < enemiesX.Length; j++)
{
if (x == enemiesX[j] && y == enemiesY[i])
{
enemiesList[i, j]--;
}
}
}
Destroy(gameObject);
}