TGViewer
Red Atom Red Atom @unitygamelab · 204 subscribers
Post #49 70
ScriptableObjects: Создание глоссария - часть 1

📊Проектирование
Для создания глоссария мы будем использовать 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 для глоссария – ждите совсем скоро!
More from @unitygamelab
  1. Sep 19, 2026Эксперименты Начал экспериментировать с постпроцессингом в URP и написал свой первый шейде…
  2. Sep 12, 2026Закончил все комнаты Закончил, конечно, громко сказано, но по локации уже можно пройтись о…
  3. Sep 5, 2026Добавил ещё две новых комнаты и и осталось всего 6 В главном хабе пришлось потратить много…
  4. Aug 29, 2026ЕЩЁ две комнаты Теперь есть ещё и склад с комнатой управления складом. Расставил свет от б…
  5. Aug 22, 2026Ещё две комнаты Добавил на локацию помещение охраны(небольшая комнатка) и распределительны…
  6. Aug 15, 2026Комната с лифтом Закончил комнату с лифтом - теперь в локации есть два помещения. Очень хо…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →