68 lines
1.5 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|