跳转到内容

SusLoadingScreenContent ​

SusLoadingScreenContent

全出血加载页 — 品牌横幅、spinner 和/或 linear bar、消息 + 可选副行。

包

SusGame · 屏幕(商业)

在 Playground 中打开

SusGame · Screens

属性

名称类型默认值
BrandTextProp<string>""
MessageProp<string>"Loading..."
MessageKeyProp<string>""
MessageCountProp<string>""
SubMessageProp<string>""
ProgressProp<float>0f
ShowSpinnerProp<bool>true
SpinnerStyleProp<string>"circular"
VisibleProp<bool>true
MapProp<bool>false
MapPhaseProp<string>"search"
ShowBarProp<bool>true
RadarPlacementProp<string>"below"
RetryTextProp<string>"Retry"
TelemetryLayoutProp<string>"inline"
TelemetryReserveRowsProp<int>0
ErrorCountdownSecondsProp<int>20
ErrorCountdownTickMsProp<int>1000
BackdropProp<List<SusParallaxLayer>>[]来自预设

插槽

没有插槽。

事件

没有公开事件。

样式钩子 ​

USS 类契约 — 无需改 C# 即可覆盖外观。状态通过这些类切换:

  • sus-brand__word
  • sus-loading-screen
  • sus-loading-screen__backdrop
  • sus-loading-screen__bar
  • sus-loading-screen__brand
  • sus-loading-screen__countdown
  • sus-loading-screen__countdown-fill
  • sus-loading-screen__countdown-num
  • sus-loading-screen__error
  • sus-loading-screen__error-btn
  • sus-loading-screen__error-text
  • sus-loading-screen__error-title
  • sus-loading-screen__indicator
  • sus-loading-screen__message
  • sus-loading-screen__message--swap
  • sus-loading-screen__message-count
  • sus-loading-screen__message-row
  • sus-loading-screen__radar
  • sus-loading-screen__segments
  • sus-loading-screen__sub
  • sus-loading-screen__sub-key
  • sus-loading-screen__sub-row
  • sus-loading-screen__sub-row--danger
  • sus-loading-screen__sub-row--live
  • sus-loading-screen__sub-row--ok
  • sus-loading-screen__sub-row--reserved
  • sus-loading-screen__sub-row--warn
  • sus-loading-screen__sub-rows
  • sus-loading-screen__sub-rows--columns
  • sus-loading-screen__sub-val
  • sus-loading-screen--visible

用法 ​

xml
<template>
  <sus:SusLoadingScreenContent
    :BrandText="Brand.Value"
    :Message="Msg.Value"
    :SubMessage="Sub.Value"
    :Progress="Prog.Value"
    :ShowSpinner="Spin.Value"
  />
</template>

<script>
public Prop<string> Brand = new("My Game");
public Prop<string> Msg = new("Loading...");
public Prop<string> Sub = new("");
public Prop<float> Prog = new(0.35f); // 0…1; <0 = indeterminate
public Prop<bool> Spin = new(true);
</script>
csharp
var loading = new SusLoadingScreenContent();
loading.BrandText.Value = "My Game";
loading.Message.Value = "Connecting…";
loading.SubMessage.Value = "Region EU";
loading.Progress.Value = 0.4f;   // shows linear bar
loading.Progress.Value = -1f;    // indeterminate → spinner if ShowSpinner
loading.ShowSpinner.Value = true;
Prop / APIRole
BrandText顶部横幅;为空 → 隐藏
Message主标签
SubMessage次标签;为空 → 隐藏
Progress0…1 → 进度条百分比;< 0 → 不确定模式
ShowSpinner不确定模式下显示圆形 spinner
BrandBanner内置的横幅宿主

背景 ​

Backdrop 接收一个 SusParallaxLayer 列表(图片、深度、可选 USS 类),并在屏幕后方放置一个 SusParallaxStack:

csharp
loading.Backdrop.Value = new List<SusParallaxLayer>
{
    new SusParallaxLayer(Background.FromTexture2D(sky), depth: 4f),
    new SusParallaxLayer(Background.FromTexture2D(skyline), depth: 14f),
};
  • 为 null 或空(默认)时不创建任何内容:树保持原样。
  • 设置后,会添加第一个子元素 sus-loading-screen__backdrop(绝对定位,忽略 picking),其中 放置堆栈(BackdropHost / BackdropStack)。再次清空时,该节点会被移除。
  • 堆栈会跟随整个屏幕上方的指针,在应用失去焦点时暂停, 并在 SusMotion.Reduce 开启时停驻。

菜单屏幕 SusMenuScreen 也有同样的 Backdrop prop。

指示器、地图阶段与雷达 ​

这里的每个 prop 默认都保持原有外观;只有在你设置它时,才会出现新的类和节点。

Prop取值效果
SpinnerStyle"circular"(默认)| "spinner" | "dual"spinner / dual:在 Progress 为负值期间,由 SusSpinner(尺寸 lg,dual 时开启 Dual)替代圆环;圆环通过类隐藏
MapPhase"search"(默认)| "map"map 在 Map 开启期间添加 sus-loading-screen--map-stage,让皮肤可以把地图阶段与搜索阶段区分开来设置样式
ShowBartrue(默认)| falsefalse 在任意 Progress 下都隐藏进度条
RadarPlacement"below"(默认)| "above"above:搜索雷达紧挨在消息之前
RetryText"Retry"ShowError 重试按钮的文字

Progress 为负值时只显示忙碌指示器,其下方没有空的进度条。 将 SearchRadar.Label 设为 "" 会隐藏雷达的说明文字。

遥测行 ​

SetTelemetry(rows) 原地更新各行:每一行由其键(加上该键的重复序号)识别,保留自己的元素,只改变值和 状态类。新键会被插入,缺失的键会被移除。

Prop取值效果
TelemetryLayout"inline"(默认)| "columns"columns(sus-loading-screen__sub-rows--columns):键右对齐、值左对齐于同一条轴线,值的长度变化时键保持不动
TelemetryReserveRows0(默认)或 N至少 N 行;缺少的行是等高的隐藏占位行(__sub-row--reserved),行陆续到达时区块不会变高

消息阶段与计数器 ​

Prop效果
MessageKey为空(默认):每次 Message 变化都加 __message--swap,与以前相同。已设置:只在键变化时加切换类
MessageCount消息旁的计数器,例如 "12/80"。第一个非空值会构建 __message-row + __message-count;计数器变化从不触发切换
csharp
loading.MessageKey.Value = "assets";
loading.Message.Value = "Loading assets";
loading.MessageCount.Value = "12/80";   // later "13/80": no swap

SusLoadingFlowScreen 公开 MessageKey 和 MessageCount;Reset() 会同时清空两者。

备注 ​

  • 确定态路径将 Progress 钳制到 0…1 并映射到进度条 0…100。
  • 不确定态隐藏进度条;spinner 的可见性还需要 ShowSpinner=true。
  • 与 kit 的 MigratedLoadingScreen 不同(包 / props 不同)。