Files
zeling_v2/Assets/_Game/Scripts/UI/LoadingScreenConfigSO.cs
2026-06-07 11:49:55 +08:00

42 lines
2.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using UnityEngine;
namespace BaseGames.UI
{
/// <summary>
/// 加载界面数据配置(策划编辑)。承载随机提示文案、标题与时长/手感参数。
/// <para>
/// 职责边界:本表只放<b>数据</b>。视觉样式(背景图、进度条 sprite、配色、布局、装饰全部在
/// <c>UI_LoadingScreen</c> 预制件里由美术在 Prefab Mode 编辑,配色随 <c>UI_Theme_Default</c> 主题;
/// 本表<b>不</b>放图片/颜色字段。
/// </para>
/// <see cref="LoadingScreenManager"/> 运行时优先读取本表;未指定时回退到组件上的序列化默认值。
/// </summary>
[CreateAssetMenu(menuName = "BaseGames/UI/Loading Config", fileName = "UI_LoadingConfig")]
public class LoadingScreenConfigSO : ScriptableObject
{
[Header("内容(本地化 KeyUI 表)")]
[Tooltip("随机加载提示的本地化 Key 列表(如 LOADING_TIP_EXPLORE。每次加载随机取一条留空则不显示提示。")]
[SerializeField] private string[] _tipKeys;
[Tooltip("加载界面标题的本地化 Key如 LOADING_TITLE。留空则不显示标题。")]
[SerializeField] private string _titleKey;
[Header("时长 / 手感")]
[Tooltip("加载画面最短显示时长(秒),避免一闪而过。")]
[SerializeField] private float _minDisplayTime = 0.5f;
[Tooltip("预计加载时长(秒)。进度条按此时间平滑爬升至约 90%,真正加载完成时再冲满。\n" +
"建议设为该游戏典型场景的加载耗时:偏长则爬得慢、偏短则更快到 90%。")]
[SerializeField] private float _expectedLoadTime = 2.5f;
[Tooltip("进度条填充缓动速度(每秒可填充比例),用于平滑收尾。")]
[SerializeField] private float _fillLerpSpeed = 1.6f;
public string[] TipKeys => _tipKeys;
public string TitleKey => _titleKey;
public float MinDisplayTime => _minDisplayTime;
public float ExpectedLoadTime => _expectedLoadTime;
public float FillLerpSpeed => _fillLerpSpeed;
}
}