Files
Ultimate-Fishing-Simulator-…/Assets/Scripts/Assembly-CSharp/Michsky/UI/Heat/SettingsDescription.cs
2026-03-04 09:37:33 +08:00

79 lines
1.7 KiB
C#

using UnityEngine;
namespace Michsky.UI.Heat
{
[RequireComponent(typeof(SettingsElement))]
public class SettingsDescription : MonoBehaviour
{
[Header("Resources")]
public SettingsDescriptionManager manager;
public SettingsElement element;
[Header("Content")]
[SerializeField]
private Sprite cover;
[SerializeField]
private string title = "Title";
[SerializeField]
[TextArea]
private string description = "Description area.";
[Header("Localization")]
[SerializeField]
private string titleKey;
[SerializeField]
private string descriptionKey;
private void Start()
{
if (manager == null && Object.FindObjectsByType<SettingsDescriptionManager>(FindObjectsSortMode.None).Length != 0)
{
manager = Object.FindObjectsByType<SettingsDescriptionManager>(FindObjectsSortMode.None)[0];
}
else if (manager == null)
{
Object.Destroy(this);
}
if (element == null)
{
element = base.gameObject.GetComponent<SettingsElement>();
}
element.onHover.AddListener(delegate
{
UpdateManager();
});
element.onLeave.AddListener(delegate
{
SetManagerToDefault();
});
}
public void UpdateManager()
{
if (!(manager == null))
{
if (manager.localizedObject != null && manager.useLocalization && !string.IsNullOrEmpty(titleKey) && !string.IsNullOrEmpty(descriptionKey))
{
manager.UpdateUI(manager.localizedObject.GetKeyOutput(titleKey), manager.localizedObject.GetKeyOutput(descriptionKey), cover);
}
else
{
manager.UpdateUI(title, description, cover);
}
}
}
public void SetManagerToDefault()
{
if (!(manager == null))
{
manager.SetDefault();
}
}
}
}