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

SusSpeechBubble

SusSpeechBubble

Мировой речевой пузырь с хвостом, опциональным auto-hide и reveal через SusTextFx; привязка к 3D — снаружи через WorldSpaceService, сам пузырь камеру не проецирует.

Пакет

SusKit · Мир (коммерческий)

Открыть в песочнице

SusKit · World

Свойства

ИмяТипПо умолчанию
TextProp<string>""v-model
SpeakerNameProp<string>""
TailProp<string>"down"
MaxWidthProp<float>240f
AutoHideSecondsProp<float>0f
RevealProp<string>"Instant"
CharsPerSecondProp<float>30f

Слоты

Слотов нет.

События

ИмяПолеPayload
HiddenOnHidden

Хуки стиля

Контракт USS-классов — внешний вид переопределяется без правки C#. Состояния переключаются этими классами:

  • sus-speech-bubble
  • sus-speech-bubble__chrome
  • sus-speech-bubble__speaker
  • sus-speech-bubble__speaker--empty
  • sus-speech-bubble__tail
  • sus-speech-bubble__text
  • sus-speech-bubble--hidden
  • sus-speech-bubble--tail-down
  • sus-speech-bubble--tail-left
  • sus-speech-bubble--tail-none
  • sus-speech-bubble--tail-right
  • sus-speech-bubble--tail-up

Использование

Тот же путь reveal, что у диалога (SusTextFx). Следование в мире — снаружи: вызовите WorldSpaceService.BindToWorld на пузыре (или его хосте); компонент сам камеру не проецирует.

csharp
var bubble = new SusSpeechBubble();
bubble.Tail.Value = "down";       // down | up | left | right | none
bubble.MaxWidth.Value = 240f;
bubble.AutoHideSeconds.Value = 3f; // 0 = stay until Hide()
bubble.Reveal.Value = "PerChar";
bubble.Show("Over here!", "Scout");
// WorldSpaceService.BindToWorld(bubble, unitTransform, offset);
bubble.OnHidden = () => { /* pooled / disposed */ };
Prop / APIРоль
Text / SpeakerNameтело и опциональная подпись имени
TailUSS-класс направления хвоста
MaxWidthмягкий потолок ширины
AutoHideSecondsскрыть после reveal (0 = вручную)
Reveal / CharsPerSecondте же режимы, что у SusDialogueBox
Show / Hide / OnHiddenжизненный цикл видимости

Заметки

  • Storybook story Speech Bubble (speech-bubble).
  • Hub shot kit-speech-bubble.png — витрина, снято в Play mode.