using Convai.Scripts.Utils; using TMPro; using UnityEngine; /// /// This class is used to manage the display name settings in the UI. /// public class UIDisplayNameSettings : MonoBehaviour { /// /// Reference to the TextMeshPro input field for entering/displaying the display name. /// [SerializeField] private TMP_InputField _playerNameInputField; /// /// Subscribe to events when this component is enabled. /// private void OnEnable() { // Subscribe to the event when saved data is loaded. UISaveLoadSystem.Instance.OnLoad += UISaveLoadSystem_OnLoad; // Subscribe to the event when data is saved. UISaveLoadSystem.Instance.OnSave += UISaveLoadSystem_OnSave; } /// /// Unsubscribe from events when this component is disabled. /// private void OnDisable() { // Unsubscribe from the event when saved data is loaded. UISaveLoadSystem.Instance.OnLoad -= UISaveLoadSystem_OnLoad; // Unsubscribe from the event when data is saved. UISaveLoadSystem.Instance.OnSave -= UISaveLoadSystem_OnSave; } /// /// Event handler when saved data is loaded. /// private void UISaveLoadSystem_OnLoad() { // Set the display name input field text to the loaded display name. _playerNameInputField.text = UISaveLoadSystem.Instance.PlayerName; // Update the player name in the ConvaiChatUIHandler. ChangePlayerName(); } /// /// Event handler when data is saved. /// private void UISaveLoadSystem_OnSave() { // Save the display name from the input field to the UISaveLoadSystem. UISaveLoadSystem.Instance.PlayerName = _playerNameInputField.text; // Update the player name in the ConvaiChatUIHandler. ChangePlayerName(); } /// /// Updates the player name in the ConvaiChatUIHandler. /// private void ChangePlayerName() { // Changes the player name in the ConvaiChatUIHandler. ConvaiChatUIHandler.Instance.playerName = _playerNameInputField.text; } }