Проблема в Unity при уничтожении экземпляра объекта - Уничтожает все клоны исходного объекта - PullRequest
1 голос
/ 09 мая 2019

По сути, я пытаюсь воссоздать DDR и просто пытаюсь снизить базовый игровой процесс. Я все еще новичок, когда дело доходит до разработчика игр, но у меня есть немного опыта. Прямо сейчас я создаю случайную стрелку из 4 различных направлений стрелок, и когда я делаю это, я помещаю ее в список. Первая стрелка в списке всегда является следующей стрелкой в ​​сцене, и я использую RemoveAt (), чтобы убедиться в этом. Проблема, которую я получаю, состоит в том, что, когда я получаю два одинаковых направления стрелки (исходящих из одного и того же исходного префаба) в строке в списке, удаление одного удалит их все, если они будут последовательными. Это только делает это так; например, если мой порядок стрелок оставлен, оставлен, вниз, это удаляет оба левых. Если у меня порядок стрелок влево, вниз, влево, то удаляются только первые левые, и я просто не могу понять, почему. Я знаю, что это не имена, потому что я пытался изменить это каждый раз, но это ничего не дало, я пытался использовать очередь, все, что я делаю, я просто не могу заставить ее работать, и мне нужна помощь.

spawnedBox = Instantiate(spawningBox, new Vector3(spawnPos, -6, 0), Quaternion.identity) as GameObject;

arrows.Add(spawnedBox);

(другой файл)

destroyArrow = FindObjectOfType<Blocks>().arrows[0];
FindObjectOfType<Blocks>().arrows.RemoveAt(0); Destroy(destroyArrow);

1 Ответ

0 голосов
/ 09 мая 2019

Создание каждой стрелки и сохранение ее в массиве.Затем, когда это требуется, уничтожается, если из массива.Вы можете попробовать что-то вроде этого:

public GameObject[] ArrowsArray;

//Here you instantiate the arrow and you store it 
ArrowsArray[index] = Instantiate (originalPref, transform.position, Quaternion.identity) as GameObject;

//Here you destroy the gameObject and remove it from the array
Destroy(ArrowsArray[index]);
ArrowsArray.RemoveAt (index);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...