33 lines
904 B
C#
33 lines
904 B
C#
|
|
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);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|