49 lines
1.0 KiB
C#
49 lines
1.0 KiB
C#
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);
|
|
}
|
|
} |