API 参考 / 能力接口(capability 包)
TrackStyleProvider
轨道样式提供器,经 UiCustomization.addTrackStyleProvider 注册。游玩场景每帧、每条轨道(真 / 假)查询一次。
方法速览
| 方法 | 用途 |
|---|---|
styleFor(TrackStyleQuery) | 返回该轨道的样式覆盖;null = 保持默认 |
完整签名
java
public interface UiCustomization {
interface TrackStyleProvider {
TrackStyle styleFor(TrackStyleQuery query);
}
}styleFor(TrackStyleQuery query)
签名:
java
TrackStyle styleFor(TrackStyleQuery query);行为:返回该轨道的样式覆盖;返回 null 表示不覆盖(保持引擎默认)。多个提供器按注册顺序查询,首个返回非 null 的整体生效,不做字段级合并。
性能约定:每帧每轨调用一次,应返回缓存的样式对象(按状态变化时才重建),避免每帧分配;回调内不应做阻塞操作,异常由宿主隔离(视为该提供器返回 null,继续询问后续提供器)。
query 为每帧构造的查询参数(见 TrackStyleQuery),勿长期持有。
示例:
java
// 按轨道缓存同一个不可变样式对象,避免每帧分配
private final UiCustomization.TrackStyle red = new UiCustomization.TrackStyle(
null, null, 0xFFFF4040, true, null, null, null);
ctx.uiCustomization().addTrackStyleProvider("redline", q -> red);线程:游戏渲染线程,每帧每轨一次。
稳定性:2.0 起冻结:2.x 内只增不破。