using UnityEngine; using UnityEngine.UI; /// /// View和Control功能分离的Toggle /// [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); } }