新增 RecordingToolPanel,按 Ctrl+R 唤出侧边栏,可独立控制光标、 版本号、Top Bar 与对话视觉的显隐。移除旧的 UIEventEnum.RecordingModeChanged 事件,改为各子系统提供显式 SetVisible API。在 Persistence 场景中配置面板层级与四个开关。
86 lines
2.7 KiB
C#
86 lines
2.7 KiB
C#
using AibisDream.Kit;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace AibisDream.UI
|
|
{
|
|
/// <summary>
|
|
/// 录制 HUD 侧边栏:Ctrl+R 唤出,四个开关独立控制光标、版本号、Top Bar、对话视觉。
|
|
/// 挂在 Info Panel 下,与 VariableBar 同类调试 UI,不使用独立 Canvas。
|
|
/// UI 层级在 Persistence 场景中配置,不在运行时生成。
|
|
/// </summary>
|
|
public class RecordingToolPanel : MonoBehaviour
|
|
{
|
|
[SerializeField] private Toggle showCursorToggle;
|
|
[SerializeField] private Toggle showVersionToggle;
|
|
[SerializeField] private Toggle showTopBarToggle;
|
|
[SerializeField] private Toggle showDialogToggle;
|
|
|
|
private bool _showCursor = true;
|
|
private bool _showVersion = true;
|
|
private bool _showTopBar = true;
|
|
private bool _showDialog = true;
|
|
|
|
private VerText _verText;
|
|
|
|
private void Awake()
|
|
{
|
|
_verText = FindObjectOfType<VerText>(true);
|
|
gameObject.SetActive(false);
|
|
|
|
BindToggles();
|
|
ApplyAll();
|
|
}
|
|
|
|
public void TogglePanel()
|
|
{
|
|
gameObject.SetActive(!gameObject.activeSelf);
|
|
}
|
|
|
|
private void BindToggles()
|
|
{
|
|
showCursorToggle.isOn = _showCursor;
|
|
showVersionToggle.isOn = _showVersion;
|
|
showTopBarToggle.isOn = _showTopBar;
|
|
showDialogToggle.isOn = _showDialog;
|
|
|
|
showCursorToggle.onValueChanged.AddListener(OnShowCursorChanged);
|
|
showVersionToggle.onValueChanged.AddListener(OnShowVersionChanged);
|
|
showTopBarToggle.onValueChanged.AddListener(OnShowTopBarChanged);
|
|
showDialogToggle.onValueChanged.AddListener(OnShowDialogChanged);
|
|
}
|
|
|
|
private void OnShowCursorChanged(bool visible)
|
|
{
|
|
_showCursor = visible;
|
|
CursorManager.Instance?.SetCursorVisible(visible);
|
|
}
|
|
|
|
private void OnShowVersionChanged(bool visible)
|
|
{
|
|
_showVersion = visible;
|
|
_verText?.SetVisible(visible);
|
|
}
|
|
|
|
private void OnShowTopBarChanged(bool visible)
|
|
{
|
|
_showTopBar = visible;
|
|
UIManager.Instance?.GetPanel<MainPanel>()?.SetTopBarVisible(visible);
|
|
}
|
|
|
|
private void OnShowDialogChanged(bool visible)
|
|
{
|
|
_showDialog = visible;
|
|
DialogUIManager.Instance?.SetDialogVisualVisible(visible);
|
|
}
|
|
|
|
private void ApplyAll()
|
|
{
|
|
OnShowCursorChanged(_showCursor);
|
|
OnShowVersionChanged(_showVersion);
|
|
OnShowTopBarChanged(_showTopBar);
|
|
OnShowDialogChanged(_showDialog);
|
|
}
|
|
}
|
|
}
|