Files
2026-03-04 10:03:45 +08:00

75 lines
1.3 KiB
C#

using System;
using HeathenEngineering.Tools;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.Serialization;
using UnityEngine.UI;
namespace HeathenEngineering.SteamApi.Foundation.UI
{
[RequireComponent(typeof(Text))]
public class GetSteamName : HeathenUIBehaviour
{
[FormerlySerializedAs("UserData")]
public SteamUserData userData;
private Text text;
private void Start()
{
text = GetComponent<Text>();
if (userData != null)
{
LinkSteamUser(userData);
}
}
private void Update()
{
}
private void OnEnable()
{
if (userData != null)
{
LinkSteamUser(userData);
}
}
public void LinkSteamUser(SteamUserData newUserData)
{
if (userData != null && userData.OnNameChanged != null)
{
userData.OnNameChanged.RemoveListener(handleNameChanged);
}
userData = newUserData;
handleNameChanged();
if (userData != null)
{
if (userData.OnNameChanged == null)
{
userData.OnNameChanged = new UnityEvent();
}
userData.OnNameChanged.AddListener(handleNameChanged);
}
}
private void handleNameChanged()
{
text = GetComponent<Text>();
try
{
text.text = userData.DisplayName;
}
catch (Exception)
{
text.text = Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerName;
}
}
private void OnDestroy()
{
}
}
}