43 lines
1.1 KiB
C#
Raw Permalink Normal View History

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Kill.UI.Components
{
public class Switch : MonoBehaviour
{
public Sprite[] sprites;
public bool isOn = false;
Action<bool> onClick;
Image image;
Button button;
public void Init(bool isOn, Action<bool> onClick)
{
this.isOn = isOn;
image = GetComponentInChildren<Image>();
button = GetComponent<Button>();
button.onClick.RemoveAllListeners();
button.onClick.AddListener(OnClickSwitch);
image.sprite = sprites[isOn ? 1 : 0];
this.onClick = onClick;
}
public void OnClickSwitch()
{
isOn = !isOn;
image.sprite = sprites[isOn ? 1 : 0];
onClick?.Invoke(isOn);
}
2026-06-17 17:37:49 +08:00
/// <summary>
/// 静默设置开关状态(不触发回调)
/// </summary>
public void SetValue(bool on)
{
isOn = on;
if (image != null)
image.sprite = sprites[isOn ? 1 : 0];
}
}
}