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(); } }