Что это: модуль мета-прогрессии для XP, уровней, unlock tree, perk tree и постоянного профиля игрока. Скрипты находятся в Scripts/Progression/.
Оглавление:
- ProgressionManager — главный runtime-компонент и точка входа.
- ProgressionNoCodeAction — no-code bridge для UnityEvent.
- ProgressionConditionAdapter — адаптер условий для
NeoConditionи других систем.
Навигация: ← К Docs
- Создайте asset'ы
LevelCurveDefinition,UnlockTreeDefinitionиPerkTreeDefinitionчерез менюNeoxider/Progression. - Добавьте
ProgressionManagerна сцену и назначьте нужные definitions. - Настройте
Save Key, если для проекта нужен отдельный профиль или несколько профилей. - Подключите UI к
XpState,LevelState,PerkPointsState,XpToNextLevelStateили к UnityEvent менеджера. - Вызывайте
AddXp,TryUnlockNode,TryBuyPerkиз кода или черезProgressionNoCodeAction. - Для no-code проверок используйте
ProgressionConditionAdapterили свойства менеджера черезNeoCondition.
ProgressionManager— загрузка, сохранение, расчёт уровней, покупка перков, разблокировка узлов.LevelCurveDefinition— пороги XP, выдача perk points и награды за уровень.UnlockTreeDefinition— узлы разблокировки, prerequisite-связи, условия и награды.PerkTreeDefinition— покупаемые перки, стоимость в perk points, зависимости и награды.ProgressionReward— data-driven reward dispatch вMoney,Collection,Quest, XP и perk points.
- Профиль хранится через
SaveProvider, а не через сценовыйSaveManager. - Это делает модуль независимым от иерархии сцены и пригодным для мета-прогрессии.
- По умолчанию используется ключ
ProgressionV2.Profile, но его можно поменять вProgressionManager.
Подходит, когда прогрессия нужна как лёгкий мета-слой между сессиями.
LevelCurveDefinition: 5-15 уровней, быстрые пороги XP.UnlockTreeDefinition: открытие новых скинов, арен, бустеров.PerkTreeDefinition: лучше держать маленьким или отключить совсем.Save Key: один общий профиль на игрока.
Рекомендуемые настройки:
- быстрый рост
RequiredXp - rewards за уровень:
Money,UnlockCollectionItem - минимальное число prerequisite-связей
Подходит, когда нужен основной слой развития персонажа.
LevelCurveDefinition: длинная кривая уровней с выдачейperk points.UnlockTreeDefinition: классовые ветки, специализации, доступ к системам.PerkTreeDefinition: основное дерево билдов.- rewards:
AcceptQuest,Money, дополнительныеPerkPoints
Рекомендуемые настройки:
- уровни растут плавно, без резких скачков в начале
RequiredUnlockNodeIdsиспользовать для gate между веткамиConditionEntryиспользовать для сюжетных или системных требований
Подходит для мета-прогрессии аккаунта, технологий и построек.
UnlockTreeDefinition: технологии, здания, новые юнитыPerkTreeDefinition: глобальные бонусы фракции или командираLevelCurveDefinition: account progression или commander progression
Рекомендуемые настройки:
- unlock nodes делать узлами технологий
- perks использовать для пассивных баффов
- rewards за уровень: валюта, доступ к новым узлам, запуск квестов
Подходит, когда прогрессия нужна как мягкий gate для контента.
UnlockTreeDefinition: главы, локации, сюжетные флагиPerkTreeDefinition: можно не использовать или оставить небольшимConditionEntry: удобно для сюжетных требований
Рекомендуемые настройки:
- делать упор на
UnlockTreeDefinition - rewards чаще вести в
Quest - XP можно выдавать за прохождение ключевых событий, а не за бой
Подходит для постоянной прогрессии между забегами.
LevelCurveDefinition: account XP или profile XPPerkTreeDefinition: постоянные мета-улучшенияUnlockTreeDefinition: новые режимы, оружие, стартовые бонусы
Рекомендуемые настройки:
ResetProgression()не использовать как часть run reset- run-прогресс хранить отдельно от
Progression V2 - meta rewards выдавать между сессиями через
SaveProvider
- Для короткой игры: 5-10 уровней, частые rewards.
- Для длинной игры: 20+ уровней,
GrantedPerkPointsне на каждом уровне. - Первый уровень лучше оставлять на
0 XP.
- Используйте
UnlockedByDefaultтолько для базовых узлов. - Не перегружайте node prerequisites длинными цепочками без явной пользы.
- Если узел зависит от сюжета или сцены, используйте
ConditionEntry.
Costдолжен масштабироваться медленнее, чем растёт XP, иначе дерево перестанет ощущаться живым.RequiredUnlockNodeIdsудобно использовать как gate между специализациями.- Для маленьких игр держите дерево на 5-12 перков, для крупных можно идти в 20+.
using Neo.Progression;
public class EnemyRewardExample : MonoBehaviour
{
[SerializeField] private int xpReward = 25;
public void GrantReward()
{
if (ProgressionManager.Instance != null)
{
ProgressionManager.Instance.AddXp(xpReward);
}
}
}using Neo.Progression;
public class QuestUnlockExample : MonoBehaviour
{
[SerializeField] private string nodeId = "chapter-2";
public void UnlockChapter()
{
if (ProgressionManager.Instance == null)
{
return;
}
ProgressionManager.Instance.TryUnlockNode(nodeId, out _);
}
}- Добавьте
ProgressionNoCodeAction. - Выберите
Action Type = AddXp. - Укажите
XP Amount = 100. - Привяжите
Execute()кButton.onClick,QuestилиUnityEvent.