42 lines
2.2 KiB
C#
42 lines
2.2 KiB
C#
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("内容(本地化 Key,UI 表)")]
|
||
[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;
|
||
}
|
||
}
|