К основному контенту
 
Блог онлайн школы Пиксель

Как сделать магазин в Unity

Привет, друзья! В одном из последних видеоуроков по Юнити мы делали инвентарь, на базе этого урока мы сделаем магазин. Оставайтесь с нами и изучайте уроки Unity бесплатно. Поехали!

Создаем еще одну панель на канвасе, а на ней создаем image, добавляем на нее спрайт золота и дублируем image, перемещаем правее. Меняем спрайт. Далее создаем кнопку, ставим под image, на кнопке меняем текст на Buy, делаем так же для второго image.

юнити уроки бесплатно

На панели магазина создаем кнопку закрытия.

юнити уроки +на русском

Открываем скрипт GameManager(который с урока про инвентарь), в нем добавляем несколько переменных. 
  •  public string nameBuy - имя покупки
  •  public int summ - общая сумма монет персонажа
  •  public GameObject ButStore - панель магазина
  •  public Text textSum - объект текст в который выводим монеты

Теперь в старте пристраиваем количество монет. Выводим это в текст на сцене и скрываем панель магазина при старте.

юнити уроки +для начинающих

Далее создаем функции для кнопок, в которых присваиваем имя покупки в зависимости от того, на какую кнопку нажали, и вызываем функцию BuyStore();

уроки юнити 3д

Далее создаем функцию BuyStore, делаем проверку на название покупки и монет.
Если два условия правда, то мы подгружаем нужный спрайт в инвентарь, вычитаем монеты у персонажа и выводим результат в текст.

уроки создания игр +на unity

Теперь создадим панель, которая будет появляться, когда у пользователя не будет хватать монет для покупки. 

unity покупки

Объявляем еще одну панель.

unity внутриигровые покупки

И добавляем, что если условия не пройдены, то мы выводим панель.

unity 3d уроки

В старте нам нужно также указать, что при запуске программы панель скрыта.


unity +как сделать магазин

Возвращаемся в Юнити. На канвасе создаем кнопку, перемещаем в левый верхний угол и меняем текст на кнопке на Store. Еще на канвас добавим текст, в котором будет отображаться количество монет. 

магазин unity

Возвращаемся в скрип. Нужно добавить функции открытия и закрытия панелей.


магазин юнити

Сохраняем и переходим в Юнити. Так как скрипт у нас на персонаже, если вы делали с нуля проект, то переместите скрипт на персонажа. В нем нам нужно заполнить окна. Добавляем панели в нужное окно. 
Теперь займемся кнопками. Кликаем на кнопку Store. 
Добавляем событие, в окно перемещаем персонажа и выбираем функцию.

игры +на unity уроки

Кликаем на кнопку в панели магазина которая отвечает за покупку золота. 
Добавляем событие, в окно перемещаем персонажа и выбираем функцию.

видео уроки юнити

Также для кнопки меча, выбираем нужную функцию. 

Кликаем на кнопку закрытия магазина. Создаем событие, перемещаем персонажа и выбираем функцию.

unity уроки бесплатно

Кликаем на кнопку закрытия окна предупреждения. Создаем событие, перемещаем персонажа и выбираем функцию.

unity уроки +для начинающих

Запускаем и проверяем.

Полный скрипт:


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GameManager : MonoBehaviour
{
    public Image[] inImages;
    public Sprite[] spr;
    public string nameBuy;
    public int summ;
    public GameObject ButStore,panelBox;
    public Text textSum;
    void Start()
    {
        summ = 150;
        textSum.text = summ.ToString();
        ButStore.SetActive(false);
        panelBox.SetActive(false);
    }
    public void OpenStore()
    {
        ButStore.SetActive(true);
    }
    public void panelClose()
    {
        panelBox.SetActive(false);
    }
    public void CloseStore()
    {
        ButStore.SetActive(false);
    }
    public void BuyStoreGold()
    {
        nameBuy = "Gold";
        BuyStore();
    }
    public void BuyStoreSword()
    {
        nameBuy = "Sword";
        BuyStore();
    }
    public void BuyStore()
    {
        if (nameBuy == "Gold" && summ >= 100)
        {
            inImages[0].sprite = spr[0];
            summ-=100;
        }

      else if (nameBuy == "Sword" && summ >= 100)
        {
            inImages[1].sprite = spr[1];
            summ -= 100;
        }
     else
        {
            panelBox.SetActive(true);
        }
        textSum.text = summ.ToString();

    }
}

Если вы хотите поглубже познакомиться с движком Unity, приходите на курс в школу "Пиксель"! Научим делать большие игры в Unity 2D и Unity 3D, будем писать скрипты на языке программирования C#. Для всех новичков есть бесплатное пробное занятие!



Бесплатные видеоуроки Unity для детей
Смотрите также
Топ-5 игр в Скретч по аниме (Scratch)
Мы собрали лучшие игры на Scratch, созданные по мотивам аниме.
Летний лагерь 2024: куда еще не поздно записать ребенка в Москве и Московской области
Сделали для вас подборку лагерей в Москве и Подмосковье, где еще открыт набор на летние смены в 2024 году.
Топ-5 лучших файтингов в Роблокс: подборка симуляторов
Мы собрали простые и сложные симуляторы файтинга в Роблокс и делимся подборкой.
С чего начать программирование детям 7 лет: топ-5 рекомендаций родителям от экспертов
Советуем родителям детей 7 лет, как правильно начать обучение программированию.