 
    Иногда одной переменной мало. А что если у нас сразу 10 врагов? Или список фруктов? Тогда на помощь приходят массивы и списки — они позволяют хранить сразу много значений и обращаться к ним по номеру.
Массивы и списки нужны, когда хочется:
В этом уроке мы разберёмся, чем массивы отличаются от списков, как их создавать, заполнять и использовать в Unity.
Массив — это переменная, в которой можно хранить сразу несколько значений одного типа. Вместо того чтобы создавать десять отдельных переменных, мы можем собрать всё в один массив и обращаться к элементам по номеру.
Массивы особенно полезны, когда нужно заранее определить фиксированное количество ячеек — например, 5 жизней игрока или 3 кнопки меню. У каждого элемента в массиве есть индекс, начиная с нуля.
После создания длина массива остаётся постоянной: добавить или удалить элементы нельзя. Если тебе нужен более гибкий способ хранения — смотри дальше, в разделе про списки.
Чтобы создать массив, нужно указать тип данных и количество элементов. Можно сначала объявить массив с фиксированной длиной, а потом заполнить, или сразу указать все значения в фигурных скобках.
          Каждый элемент массива имеет свой номер — индекс,
          начиная с 0. Мы можем читать и изменять значения через
          этот индекс. Например, массив[1] — это второй элемент.
        
Ниже — два примера: один для чисел, другой для строк. Они показывают, как создать массив, заполнить его и использовать значения в коде.
using UnityEngine;
public class CSharpScript : MonoBehaviour
{
    // Start вызывается один раз при запуске объекта
    void Start()
    {
        // Создаём массив из 3 чисел
        int[] numbers = new int[3];
        // Заполняем массив значениями
        numbers[0] = 10;
        numbers[1] = 20;
        numbers[2] = 30;
        // Выводим одно из значений
        Debug.Log("Второе число: " + numbers[1]);
    }
    // Update вызывается каждый кадр
    void Update()
    {
        
    }
}
using UnityEngine;
public class CSharpScript : MonoBehaviour
{
    // Start вызывается один раз при запуске объекта
    void Start()
    {
        // Массив строк с именами
        string[] names = { "Anya", "Bob", "Sonya" };
        // Выводим первое имя
        Debug.Log("Привет, " + names[0]);
    }
    // Update вызывается каждый кадр
    void Update()
    {
        
    }
}
          Список — это как массив, но гибче. Мы можем добавлять
          и удалять элементы в любое время, а не задавать количество заранее.
          Для работы со списками используется тип List<T>,
          где T — тип данных (например, int,
          string, GameObject).
        
Списки часто используют, когда:
          Чтобы создать список, нужно использовать тип
          List<T> и подключить пространство имён
          System.Collections.Generic. После этого можно легко
          добавлять элементы по ходу выполнения программы.
        
          Для добавления используется метод Add(). Он добавляет
          значение в конец списка.
        
          Чтобы удалить элемент, можно использовать Remove() — он
          ищет и удаляет первое вхождение указанного значения. Есть и другие
          методы, например RemoveAt(index), если нужно удалить по
          номеру.
        
          Вместо свойства Length, как у массива, у списка
          используется Count — он показывает, сколько элементов
          сейчас в списке.
        
Ниже мы покажем пример, как это всё работает внутри Unity-скрипта.
using UnityEngine;
using System.Collections.Generic;
public class CSharpScript : MonoBehaviour
{
    // Start вызывается один раз при запуске объекта
    void Start()
    {
        // Создаём список строк с начальными значениями
        List<string> names = new List<string>() { "Anya", "Bob", "Sonya" };
        // Добавляем ещё два имени
        names.Add("Tina");
        names.Add("Leo");
        // Удаляем первое имя (Anya)
        names.RemoveAt(0);
        // Выводим количество элементов
        Debug.Log("Всего имён в списке: " + names.Count);
    }
    // Update вызывается каждый кадр
    void Update()
    {
        
    }
}
Оба варианта — и массивы, и списки — позволяют хранить много значений, но у них разные особенности.
Add(),
                Remove(), Clear() и
                Count.
              
          Если не уверен — начинай с List<T>. Он проще в
          использовании и гибче в большинстве случаев.