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

68 lines
1.5 KiB
C#

using Heathen.SteamworksIntegration;
using Steamworks;
using UnityEngine;
public class LobbyObserver : MonoBehaviour
{
[SerializeField]
private ScriptableLobbyDataVariable scriptable_variable_LobbyData;
private LobbyManager lobbyManager;
private void LobbyEnterSuccess(LobbyData lobbyData)
{
RefreshLobbyData();
}
private void LobbyEnterFailed(EChatRoomEnterResponse response)
{
RefreshLobbyData();
}
private void OnLobbyLeave()
{
RefreshLobbyData();
}
private void OnLobbyCreated(LobbyData lobbyData)
{
RefreshLobbyData();
}
private void OnLobbyCreateFailed(EResult result)
{
RefreshLobbyData();
}
private void Awake()
{
lobbyManager = GetComponent<LobbyManager>();
}
private void OnEnable()
{
lobbyManager.evtEnterSuccess.AddListener(LobbyEnterSuccess);
lobbyManager.evtEnterFailed.AddListener(LobbyEnterFailed);
lobbyManager.evtLeave.AddListener(OnLobbyLeave);
lobbyManager.evtCreated.AddListener(OnLobbyCreated);
lobbyManager.evtCreateFailed.AddListener(OnLobbyCreateFailed);
}
private void OnDisable()
{
lobbyManager.evtEnterSuccess.RemoveListener(LobbyEnterSuccess);
lobbyManager.evtEnterFailed.RemoveListener(LobbyEnterFailed);
lobbyManager.evtLeave.RemoveListener(OnLobbyLeave);
lobbyManager.evtCreated.RemoveListener(OnLobbyCreated);
lobbyManager.evtCreateFailed.RemoveListener(OnLobbyCreateFailed);
}
private void RefreshLobbyData()
{
if (scriptable_variable_LobbyData.Value != lobbyManager.Lobby)
{
scriptable_variable_LobbyData.Value = lobbyManager.Lobby;
}
}
}