void Start()
    {
        audioSource = gameObject.GetComponent <AudioSource>();

        if (Slot1 == null)
        {
            print("Inventory был запущен с пустым Slot1. Это может вызвать непредсказуемое поведение.");
        }

        if (Slot1 != null)
        {
            // Чтобы не получалось так, что мы редактируем переменные префаба, который мы перетащили в Slot1 в редакторе,
            // вместо префаба используем его копию.
            Slot1 = Instantiate(Slot1);
            // Выключаем у оружия по уиолчанию Pickup.
            Slot1.gameObject.GetComponent <Pickup>().SetEnabled(false);
        }

        if (Slot2 != null)
        {
            Slot2 = Instantiate(Slot2);
            // Выключаем у оружия по уиолчанию Pickup.
            Slot2.gameObject.GetComponent <Pickup>().SetEnabled(false);
        }

        // Отправляем скрипту HoldGun сообщение, что инвентарь был успешно инициализирован.
        HoldGun hg = GetComponent <HoldGun>();

        if (hg != null)
        {
            hg.InventoryReady();
        }
    }
    /// <summary>
    /// Добавляет оружие в инвентарь, или заменяет текущее оружие.
    /// </summary>
    /// <param name="weapon">Новое оружие.</param>
    public void EquipWeapon(Weapon weapon)
    {
        weapon.gameObject.GetComponent <Pickup>().SetEnabled(false);

        // Если второй слот пустой (а первый активен), то вместо того, чтобы менять оружие
        // в первом слоте, мы ставим его во второй слот и переключаемся на него.
        if (Slot2 == null)
        {
            Slot2      = weapon;
            activeSlot = 2;
            return;
        }

        // Меняем оружие в текущем слоте на новое.
        ThrowOutActiveWeapon();
        if (activeSlot == 1)
        {
            Slot1 = weapon;
        }
        else
        {
            Slot2 = weapon;
        }
        HoldGun hg = gameObject.GetComponent <HoldGun>();

        if (hg != null)
        {
            hg.UpdateWeapon();
        }
    }