revival/game/Assets/Scripts/Settings/PlayerPrefToggle.cs

29 lines
703 B
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
[RequireComponent(typeof(Toggle))]
public class PlayerPrefToggle : MonoBehaviour
{
private Toggle _toggle;
[SerializeField]
private PlayerPrefValue _playerPref;
[SerializeField]
private bool _defaultValue;
private void Awake()
{
_toggle = GetComponent<Toggle>();
_toggle.onValueChanged.AddListener( ( ticked ) => _playerPref.SetInt( ticked ? 1 : 0 ) );
}
private void OnEnable()
{
bool value = _playerPref.HasValue ? _playerPref.GetInt() > 0 : _defaultValue;
_toggle.isOn = value;
}
}