50 lines
742 B
C#
50 lines
742 B
C#
using Michsky.UI.Heat;
|
|
using Obvious.Soap;
|
|
using UnityEngine;
|
|
|
|
public class BindBoolVariableToSwitch : MonoBehaviour
|
|
{
|
|
[SerializeField]
|
|
private BoolVariable _BoolToCheck;
|
|
|
|
[SerializeField]
|
|
private bool _CheckOnEnable;
|
|
|
|
[SerializeField]
|
|
private SwitchManager _Switch;
|
|
|
|
private void OnEnable()
|
|
{
|
|
if (_CheckOnEnable)
|
|
{
|
|
UpdateSwitch();
|
|
}
|
|
_BoolToCheck.OnValueChanged += CheckValue;
|
|
}
|
|
|
|
private void OnDisable()
|
|
{
|
|
_BoolToCheck.OnValueChanged -= CheckValue;
|
|
}
|
|
|
|
private void CheckValue(bool value)
|
|
{
|
|
UpdateSwitch();
|
|
}
|
|
|
|
private void UpdateSwitch()
|
|
{
|
|
if ((bool)_Switch && _Switch.isOn != _BoolToCheck.Value)
|
|
{
|
|
if (_BoolToCheck.Value)
|
|
{
|
|
_Switch.SetOn();
|
|
}
|
|
else
|
|
{
|
|
_Switch.SetOff();
|
|
}
|
|
}
|
|
}
|
|
}
|