# Разблокируемые элементы

Функция разблокировки позволяет управлять элементами, которые имеют постоянное состояние блокировки или разблокировки. Вы можете использовать его различными способами, например, для представления слотов в CG или видеогалерее, достижений, советов и других систем, где некоторвый объект должен быть в состоянии стать разблокированным или активированным, когда игрок выполняет требуемое условие.

Каждый разблокируемый элемент представлен строковым идентификатором и булевым значением, указывающим, разблокирован ли элемент. В сценариях Naninovel используйте команды @unlock и @lock, чтобы соответственно разблокировать и заблокировать элемент с определенным ID, например:

@unlock SecretAchievement

— разблокирует предмет SecretAchievement, а

@lock SecretAchievement

— снова заблокирует его.

Состояние блокировки элементов хранится в разделе глобального состояния и не зависит от локальных игровых сессий; например, если вы разблокируете какой-то элемент, он не будет снова заблокирован, когда игрок начнет новую игру или загрузит другую сохраненную игру.

Чтобы привязать фактический GameObject к разблокируемому элементу, используйте компонент UnlockableTrigger:

Установите ID элемента в поле Unlockable Item Id и привяжите к нему команду, которая должна быть выполнена, когда элемент разблокирован. Например, на приведенном выше рисунке GameObject активируется, когда SecretAchievement разблокировано, и наоборот.

В C# вы можете получить доступ к разблокируемым элементам с помощью сервиса движка Unlockable Manager.

# Разблокируемые Ресурсы

В меню конфигурации разблокируемых элементов (Naninovel -> Configuration -> Unlockables) вы можете найти менеджер ресурсов, который позволяет хранить произвольные ресурсы, используемые с функцией разблокировки.

Разблокируемые ресурсы используются встроенными разблокируемыми системами, такими как галерея CG. Вы также можете использовать менеджер для своих собственных пользовательских систем.

# Галерея CG

Используя функцию галереи CG, вы можете указать ресурсы текстур (изображения), которые могут быть разблокировываться в течение игры, а затем просмотрены через UI ICGGalleryUI, доступный в главном меню.

По умолчанию все разблокируемые текстурные ресурсы с префиксом CG, добавленные через менеджер разблокируемых ресурсов, и фоновые спрайтовые ресурсы актора MainBackground с тем же префиксом будут считаться разблокируемыми элементами CG.

Чтобы добавить разблокируемый элемент CG в галерею, вы можете либо использовать один из существующих основных фоновых ресурсов, добавив CG к его пути:

— или добавить "автономную" текстуру, используя менеджер разблокируемых ресурсов, доступный через Naninovel -> Resources -> Unlockables:

Независимо от того, какой способ вы выберете, вы можете разблокировать и заблокировать элементы с помощью команд @unlock и @lock соответственно.

Например, чтобы разблокировать элемент CG/Map, добавленный на иллюстрациях выше, используйте следующую команду скрипта:

@unlock CG/Map

Если для добавления элементов CG вы будете использовать как разблокируемые ресурсы, так и ресурсы фонов, то сначала в галерее CG будут отображаться ресурсы, указанные в диспетчере разблокируемых объектов. Вы можете изменить это поведение, а также актуальные источники, из которых извлекаются доступные ресурсы CG, используя свойство Cg Sources скрипта CG Gallery Panel, прикрепленного к корню префаба UI, представляющего галерею CG (встроенная реализация, хранящаяся в Naninovel/Prefabs/DefaultUI/ICGGalleryUI.CGGalleryPanel).

Когда в любой из источников будет добавлен хотя бы один элемент CG (независимо от разблокированного состояния), в главном меню появится кнопка CG GALLERY, позволяющая получить доступ к браузеру галереи.

Вы можете изменить или полностью заменить встроенную реализацию ICGGalleryUI с помощью функции кастомизации UI.

# Подсказки

Система разблокируемых подсказок позволяет указать набор текстовых записей с помощью локализуемых документов управляемого текста; затем записи могут быть разблокированы на протяжении всей игры и просмотрены через пользовательский интерфейс ITipsUI, доступный из главного меню и панелей управления текстовым принтером.

Эта система может быть использована для создания внутриигрового словаря/энциклопедии или трекера достижений.

Чтобы определить доступные подсказки, создайте текстовый документ Tips.txt внутри каталога ресурсов управляемого текста (по умолчанию Resources/Naninovel/Text). Каждая строка идентифицирует одну запись подсказки. Строка должна начинаться с ID подсказки, за которым следует двоеточие; затем следует указать название подсказки, категорию (необязательно) и описание, разделенные вертикальными линиями (|), например:

Tip1ID: Tip 1 Title | Tip 1 Category | Tip 1 Description
Tip2ID: Tip 2 Title | Tip 2 Description
Tip3ID: Tip 3 Title 
Tip4ID: Tip 4 Title | Tip 4 Category 
...

Вы можете использовать теги Rich text и вставлять разрывы строк (\n) в раздел описания подсказки.

Когда есть хотя бы одна запись подсказки в управляемом текстовом документе Tips.txt, в главном меню и панелях управления появятся кнопки "TIPS", ведущие к браузеру подсказок.

Чтобы разблокировать запись подсказки, используйте @unlock и @lock для блокировки записи обратно с последующим ID подсказки (всегда должен предшествовать префикс Tips/) в сценариях Naninovel. Например, чтобы разблокировать запись подсказки Tip1ID, используйте:

@unlock Tips/Tip1ID
Обновлено: October 5, 2020