Как уничтожить инстанцированный (клонированный) объект в unity3d? - PullRequest
1 голос
/ 21 ноября 2011

Я работаю с Unity3d над созданием игры для iPhone.Поскольку iPhone сильно ограничен в производительности, чем ПК, я хочу сохранить экономичность.В моей игре у меня очень длинная лестница, и по ней ходит персонаж.Если персонаж выше одного шага на высоту, этот шаг будет уничтожен.Но я не смог получить ссылку на один игровой объект.Как я мог этого добиться?Большое спасибо!

function buildFirstStair () {
    for (var y = 0; y < 80; y++) {
        for (var x = 0; x < 80; x++) {
            if (x == y) {
                var step = Instantiate(cube, Vector3(0, x*0.25, y*0.25), Quaternion.identity);
            }
        }
    }
}

1 Ответ

5 голосов
/ 29 мая 2012

Вы можете поместить все экземпляры в список и удалить их после.Что-то вроде:

function Create()
{
    List<GameObject> mylist;

    for (float y = 0; y < 80; y++)   
        for (float x = 0; x < 80; x++) {
            if (x == y) {
                mylist.push((GameObject) Instantiate(...), Quaternion.identity));
            }
        }
}

И чтобы удалить, вы делаете что-то вроде

foreach object in mylist
{
  Destroy(object);
}

Извините за код C #, но я пользователь ac #.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...