Странное Unity сборное поведение? - PullRequest
0 голосов
/ 28 апреля 2019

В начале сцены сценарий порождает 5 клонов Префаба, который включает в себя: маленький камень с детектором столкновений и большой камень, который сам включает в себя: спрайт.Для лучшего воображения я предоставляю картинку:

Picture 1

Picture 2

Как вы видите, Big_rockв Rock элемент правильно подключен в префабе.

И всякий раз, когда я хочу использовать Destroy (Big_rock), он на самом деле разрушает Big_rock FROM NEXT PREFAB , и я действительно не знаю, почему онведет себя так.

1 Ответ

0 голосов
/ 28 апреля 2019

Кажется, проблема в том, что вы не меняете ссылку при создании экземпляра BigRock. BigRock, как префаб, отличается от GameObject, который был создан. У вас должна быть вторая переменная, ссылающаяся на новую порожденную породу.

Помните, что первый не существует на сцене, поэтому вы должны сохранить тот экземпляр внутри сцены.

// This will be the reference to the PREFAB
public GameObject big_rock;
// This will be the referenced to the new spawned gameobject
private GameObject spawned_big_rock;

private void SpawnRock()
{
    GameObject gameobjectThatWeJustSpawned = Instantiate(big_rock);
    // We set the reference to the one that was spawned
    spawned_big_rock = Instantiate(big_rock);
}

public void DestroyRock()
{
    // We destroy the one that was spawned
    Destroy(spawned_big_rock);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...