В данной статье мы рассмотрим, как сделать подбор монет, и отображение количество подобранных монет на игровой сцене.
Итак, для начала нам необходимо создать место, где будет отображено общее количество собранных монет. Для этого создадим игровой объект типа UI – Canvas, и настроим его с помощью окна Inspector:
- В поле Render Mode выбираем Screen Space – Camera. Это нужно, чтобы наш канвас привязать к нашей игровой камере.
- В поле Render Camera перетаскиваем объект нашей камеры из окна Hierarchy.
- В поле UI Scale Mode выбираем Scale With Screen Size.
- В поле Reference Resolution указываем Х=1920 Y=1080. Если Вы создаёте игру для мобильных устройств, то установите Х=1080 Y=1920
Теперь создадим область, где будет храниться наше значение монет. Для этого создаём игровой объект типа UI – Text. И в окне Inspector в поле Text пропишем 0.
Теперь создадим объект нашей монеты, которую мы будем собирать. Для этого создадим пустой объект, и назовём его, например, Money. Далее через окно Inspector проделаем следующие операции:
- Добавим компонент Rigidbody2D. В поле Body Type установим свойство Kinematic – чтобы наши монеты не падали под действием гравитации.
- Добавим компонент BoxCollider2D. Поставим галочку в поле Is Trigger – чтобы для данного объекта выполнялся метод OnTriggerEnter2D(), который мы чуть позже будем использовать в C# скрипте.
- Создадим тег для монет с названием, например, Money. Добавим этот тег к нашему объекту.
Программная часть
Суть подбора монет проста. Как только наш персонаж соприкоснётся с объектом, который имеет тег Money, он уничтожается. А пользователю прибавится +1 монета в переменную. Давайте это реализуем. Для этого создадим C# скрипт с названием, например, TakeItem. И пропишем в нём следующий код.
using UnityEngine;
using UnityEngine.UI;
public class TakeItem : MonoBehaviour
{
public Text text;
public int money;
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.CompareTag("Item"))
{
Destroy(collision.gameObject);
money++;
text.text = money.ToString();
}
}
}
В завершении нам нужно сделать этот код исполняемым. Для этого загрузим этот код в объект нашего игрового персонажа. А так же переместим наш объект Text в поле text, используя окно Inspector.