К содержимому

12. Запуск примеров (Samples~)

Пакет содержит 3 самостоятельных примера в Samples~/.

Импорт

WindowPackage Manager → выберите SusCore → кнопка Import в разделе Samples. После импорта: Assets/Samples/SusCore/<version>/.

Настройка сцены

  1. Создайте пустой GameObject → Add Component → UIDocument
  2. Add Component → скрипт примера (SusBootstrapExample, SusKeepAliveExample или CompExample)
  3. [RequireComponent(typeof(UIDocument))] гарантирует наличие UIDocument
  4. На сцене должен быть EventSystem

Comp Example (v1.0.49+)

Цели:

  • SetChildProp — передача литерального prop (case-insensitive, мутирует .Value)
  • BindChildProp — реактивный prop (:variant="expr" в .sharq)
  • Проверка, что Prop<T> ребёнка не заменяется новой копией

В коде: родитель (CompScreen) создаёт ребёнка MockChild и передаёт props. В .sharq это эквивалентно <sus:SusButton variant="secondary" :label="LabelProp" />.

SusBootstrap Example

Цели:

  • SusBootstrap.Mount<T>() — аналог createApp().mount('#app')
  • GetOrCreateOverlay() — portal-рендер
  • SusThemeService.Instance.SetTheme(root, theme) — класс dark/light темы на cascade root

Управление: клавиши D (Dark), L (Light), T (Show Tooltip), O (Toggle Overlay).

SusKeepAlive Example

Цели:

  • SusKeepAlive.Wrap(element) — кеширование DOM
  • Переключатель Active — скрытие через display:none

Без управления — работает автоматически. Каждую секунду:

[KeepAlive] Active=True (visible)
[KeepAlive] Active=False (hidden — DOM preserved)

Диагностика

СимптомПричинаРешение
Клавиши не работаютФокус не в Game viewКликните в Game view
Ничего не отображаетсяUIDocument без PanelSettingsСкрипты сообщают об этом самостоятельно
Пример не импортируетсяКеш Package ManagerRemove → Install заново