Files
JJBB/Assets/Project/Script/GUI/Base/UiToggleToSetting.cs

49 lines
1.0 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// View和Control功能分离的Toggle
/// </summary>
[RequireComponent(typeof(Toggle))]
public class UiToggleToSetting : UiToggleVC
{
private BooleanSetting _booleanSetting;
private bool _init;
public void Init(BooleanSetting setting)
{
_booleanSetting = setting;
_init = true;
OnEnable();
}
private void OnEnable()
{
if (_init)
{
_booleanSetting.onSettingUpdate += OnSettingUpdate;
onToggleClick += OnToggleClick;
OnSettingUpdate(_booleanSetting);
}
}
private void OnDisable()
{
if (!GameManager.applicationQuit)
{
_booleanSetting.onSettingUpdate -= OnSettingUpdate;
onToggleClick -= OnToggleClick;
}
}
public void OnToggleClick(bool isOn)
{
var current = _booleanSetting.current;
_booleanSetting.Set(!current);
}
private void OnSettingUpdate(bool value)
{
SetOn(value);
}
}