using System;
using UnityEditor.Networking.PlayerConnection;
using UnityEngine.Networking.PlayerConnection;
namespace UnityEditor.Rendering
{
public partial class RenderGraphViewer
{
class PlayerConnection : IDisposable
{
IConnectionState m_ConnectionState;
bool m_EditorQuitting;
readonly UnityEngine.Events.UnityAction<int> m_OnPlayerConnected;
readonly UnityEngine.Events.UnityAction<int> m_OnPlayerDisconnected;
public PlayerConnection(IConnectionState connectionState, UnityEngine.Events.UnityAction<int> onPlayerConnected, UnityEngine.Events.UnityAction<int> onPlayerDisconnected)
{
m_ConnectionState = connectionState;
m_OnPlayerConnected = onPlayerConnected;
m_OnPlayerDisconnected = onPlayerDisconnected;
EditorConnection.instance.Initialize();
EditorConnection.instance.RegisterConnection(m_OnPlayerConnected);
EditorConnection.instance.RegisterDisconnection(m_OnPlayerDisconnected);
}
public void Dispose()
{
if (m_ConnectionState != null)
{
EditorConnection.instance.UnregisterConnection(m_OnPlayerConnected);
EditorConnection.instance.UnregisterDisconnection(m_OnPlayerDisconnected);
m_ConnectionState.Dispose();
m_ConnectionState = null;
}
}
public void OnConnectionDropdownIMGUI()
{
PlayerConnectionGUILayout.ConnectionTargetSelectionDropdown(m_ConnectionState, EditorStyles.toolbarDropDown, 250);
}
}
}
}