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

SusUnitNameplate

SusUnitNameplate

World-ready неймплейт — faction bar, иконка, name / level, опциональное HP; может auto-bind с unit Transform.

Пакет

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

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

SusKit · World

Свойства

ИмяТипПо умолчанию
UnitNameProp<string>""v-model
LevelProp<int>0v-model
FactionProp<string>""v-model
IconProp<string>""v-model
HpFractionProp<float>1fv-model
ShowHealthBarProp<bool>falsev-model
TargetProp<Transform>nullv-model
AutoBindProp<bool>truev-model

Слоты

Слотов нет.

События

Публичных событий нет.

Хуки стиля

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

  • sus-unit-nameplate
  • sus-unit-nameplate__content
  • sus-unit-nameplate__faction
  • sus-unit-nameplate__faction--ally
  • sus-unit-nameplate__faction--enemy
  • sus-unit-nameplate__faction--neutral
  • sus-unit-nameplate__hp
  • sus-unit-nameplate__hp-fill
  • sus-unit-nameplate__hp-fill--critical
  • sus-unit-nameplate__hp-fill--warning
  • sus-unit-nameplate__icon
  • sus-unit-nameplate__level
  • sus-unit-nameplate__name
  • sus-unit-nameplate__plate
  • sus-unit-nameplate__row

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

Ручные props (значение по умолчанию в Storybook — AutoBind=false):

csharp
var unit = new SusUnitNameplate();
unit.UnitName.Value = "Captain";
unit.Level.Value = 12;
unit.Faction.Value = "ally";
unit.Icon.Value = "shield";
unit.HpFraction.Value = 0.55f;
unit.ShowHealthBar.Value = true;
unit.AutoBind.Value = false;
xml
<template>
  <sus:SusUnitNameplate :UnitName="Name.Value"
                        :Level="Level.Value"
                        :Faction="Faction.Value"
                        :Icon="Icon.Value"
                        :HpFraction="Hp.Value"
                        :ShowHealthBar="ShowHp.Value"
                        :AutoBind="AutoBind.Value" />
</template>

<script>
public Prop<string> Name = new("Captain");
public Prop<int> Level = new(12);
public Prop<string> Faction = new("ally");
public Prop<string> Icon = new("shield");
public Prop<float> Hp = new(0.55f);
public Prop<bool> ShowHp = new(true);
public Prop<bool> AutoBind = new(false);
// Optional: assign Target (Transform) + AutoBind=true to pull IWorldUnit* data.
</script>
PropРоль
UnitName / Level / IconСтрока идентификации
Factionally · enemy · neutral (цвет faction bar)
HpFractionЗаполнение HP 0…1
ShowHealthBarПереключение видимости HP-полоски
TargetTransform юнита для auto-bind
AutoBindКогда true и задан Target — синхронизация из IWorldUnit*

Заметки

  • Богаче, чем SusNameplate: встроенный faction bar + иконка; опциональная привязка к Transform.
  • HP-полоса остаётся в DOM; видимость переключается через ShowHealthBar.