📊Проектирование
Для создания глоссария мы будем использовать ScriptableObjects, который будут хранить информацию о каждом типе противников.
Для создания класса нам необходимо выделить наиболее важные и общие для всех врагов параметры. В моём случае это будут:
1. Название типа противников
2. Здоровье противников
3. Урон противников.
При желании можно расширить перечень параметров, если вы решите использовать в игре более сложные системы противников. Например, вы можете добавить скорость в виде float-поля по аналогии с тем, как я реализую остальные поля.
🛠Создание конфигов
Чтобы создать ScriptableObject вам необходимо создать базовый скрипт в файлах проекта: ПКМ -> Create -> C# Script.
После этого переименуйте скрипт в соответствии с тем, что вы создаёте. В моём случае скрипт называется Enemy.
Открыв скрипт, измените код программы следующим образом:
using UnityEngine;
[CreateAssetMenu(fileName = "Enemy", menuName = "Entities/Enemy")]
public class Enemy : ScriptableObject
{
public string enemyName;
public int hp;
public int damage;
}
Изначально в вашем скрипте может быть больше строк using, но используется в данном случае лишь одна, поэтому остальные были удалены за ненадобностью.
Вместо наследования от MonoBehaviour наш класс наследуется от ScriptableObject. Также перед объявлением класса мы используем CreateAssetMenu, чтобы обозначить изначальное название конфига при создании и то, где мы сможем найти его во всплывающем меню. Исходя из приведённого выше кода мы сможем создать Enemy используя ПКМ -> Create -> Entities -> Enemy
✍🏻Итог
Таким образом мы можем создавать множество различных объектов Enemy, представляющих данные о противниках. Я создал три объекта Enemy - попробуйте создать ещё трёх своих.
В следующем посте сверстаем UI для глоссария – ждите совсем скоро!
