38 lines
1.0 KiB
C#
38 lines
1.0 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class VisibilityBySettings : MonoBehaviour
|
|
{
|
|
[SerializeField] string settingId;
|
|
[SerializeField] bool SetEnabled;
|
|
|
|
[SerializeField] List<Graphic> Graphics;
|
|
|
|
private void OnEnable()
|
|
{
|
|
pullSettings();
|
|
SettingsManager.OnSettingsChanged.AddListener(pullSettings);
|
|
}
|
|
private void OnDisable() => SettingsManager.OnSettingsChanged.RemoveListener(pullSettings);
|
|
void pullSettings()
|
|
{
|
|
bool settingValue = SettingsManager.GetBool(settingId, false);
|
|
|
|
//когда настройка и состояние совпадает.
|
|
bool visibility = settingValue == SetEnabled;
|
|
SetVisibility(visibility);
|
|
}
|
|
private void SetVisibility(bool value)
|
|
{
|
|
float alpha = value ? 1 : 0;
|
|
foreach (Graphic g in Graphics)
|
|
{
|
|
Color color = g.color;
|
|
color.a = alpha;
|
|
g.color = color;
|
|
}
|
|
}
|
|
}
|