DCS/ruiyiweiUX/Assets/Scripts/Views/SettingsPanel.cs

90 lines
2.2 KiB
C#
Raw Normal View History

2026-06-09 13:59:11 +08:00
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class SettingsPanel : BasePanel
{
public Button LightButton;
public Button DataButton;
public Button VolumeButton;
public Button MuteButton;
public Button NetButton;
public Button AboutButton;
public Button UserManagerButton;
public Button UseLogButton;
public Button HomeButton;
public Button BackButton;
public override void Init()
{
if (LightButton != null)
{
LightButton.onClick.AddListener(() => UIManager.Instance.ShowPanel<LightSettingPanel>());
}
if (DataButton != null)
{
DataButton.onClick.AddListener(() => UIManager.Instance.ShowPanel<TimeSettingPanel>());
}
if (VolumeButton != null)
{
VolumeButton.onClick.AddListener(() => UIManager.Instance.ShowPanel<VolumeSettingPanel>());
}
if (MuteButton != null)
{
MuteButton.onClick.AddListener(() => UIManager.Instance.ShowPanel<MuteSettingPanel>());
}
if (NetButton != null)
{
NetButton.onClick.AddListener(() => {
UIManager.Instance.ShowPanel<NetworkSettingPanel>();
});
}
if (AboutButton != null)
{
AboutButton.onClick.AddListener(() => UIManager.Instance.ShowPanel<VersionPanel>());
}
if (UserManagerButton != null)
{
UserManagerButton.onClick.AddListener(() => UIManager.Instance.ShowPanel<UserManagerPanel>());
}
if (UseLogButton != null)
{
UseLogButton.onClick.AddListener(() => UIManager.Instance.ShowPanel<UseLogPanel>());
}
if (HomeButton != null)
{
HomeButton.onClick.AddListener(() =>
{
ReturnToHome();
});
}
if (BackButton != null)
{
BackButton.onClick.AddListener(() => ClosePanel());
}
// 检查管理员权限
var auth = ServiceLocator.Get<IAuthenticationService>();
if (auth == null || !auth.IsLoggedIn || auth.CurrentRole != UserRole.Admin)
{
UserManagerButton.gameObject.SetActive(false);
UseLogButton.gameObject.SetActive(false);
// 显示权限不足提示
Debug.LogWarning("用户管理功能仅限管理员使用");
}
}
// public void ClosePanel()
// {
// UIManager.Instance.HidePanel<SettingsPanel>();
// }
}