Убрать последний созданный
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 66 из 85.
Самый новый элемент списка — последний, с индексом Count - 1. Удаляй его с помощью Remove и сначала проверяй Count > 0: в пустом списке нет последнего элемента, и попытка получить его останавливает скрипт с исключением ArgumentOutOfRangeException.
if (coins.Count > 0)
{
GameObject last = coins[coins.Count - 1];
coins.Remove(last);
Destroy(last);
}Удаление элемента из списка не затрагивает объект в сцене: скрой или уничтожь его самостоятельно.
Задание
СреднеСделай так, чтобы клавиша пробела убирала последний ящик.
- В
Update(), при нажатииInput.GetKeyDown(KeyCode.Space)и только еслиboxes.Count > 0, получиGameObject newest = boxes[boxes.Count - 1];. - Скрой его с помощью
newest.SetActive(false);и удали с помощьюboxes.Remove(newest);. - Выведи в журнал
"Boxes: " + boxes.Count.
Нажми «Играть», щёлкни три раза, затем нажми пробел: последний ящик исчезнет. Затем нажми «Проверить».
Попробуйте сами
using System.Collections.Generic;
using UnityEngine;
public class BoxStacker : MonoBehaviour
{
public GameObject boxPrefab;
List<GameObject> boxes = new List<GameObject>();
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Vector3 spot = transform.position + new Vector3(boxes.Count * 1.5f, 0, 0);
GameObject box = Instantiate(boxPrefab, spot, Quaternion.identity);
boxes.Add(box);
Debug.Log("Boxes: " + boxes.Count);
}
// Space: скрыть последний добавленный ящик и удалить его из списка
}
}
Все уроки раздела Основы скриптинга в Unity
1Основы C# в Unity
Привет, UnityПеременныеДля дробных чисел нужна fТекст в консолиПеременные, которые запоминаютЕсли и иначеСравнение чиселПовторение: сборщик монет7Циклы и методы
Повторение с forЦиклы внутри цикловНапишите методМетоды, которые возвращают значениеМассивыПовторение: лестница10Поиск объектов
Поиск по имениТегиПоиск по типуСсылки лучше поискаNull в UnityПовторение: ближайшая монета13Проект: уворачиваемся от блоков
БегунБлоки с неба2Заставь двигаться
Размести кубДвигай каждый кадрПоворачивай каждую секундуУправляй клавишамиПовторение: веди куб5Векторы
Сложение векторовНаправленияЛокальное и мировое пространствоСкорость по диагоналиРасстояние между объектамиVector3 — это структураПовторение: пилот дрона8Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказ и скрытиеПовторение: выключатель света11Префабы и создание объектов
Префабы и InstantiateСпавн по таймеруСпавн в сеткеСписки объектовУбрать последний созданныйDestroyСлучайный спавнПовторение: фейерверкиПотренируйтесь самостоятельно: Песочница Unity