Files

83 lines
2.3 KiB
C#
Raw Permalink Normal View History

2022-12-04 19:19:07 +02:00
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityGGPO;
2022-12-06 12:22:07 +02:00
namespace SharedGame
{
2022-12-04 19:19:07 +02:00
2022-12-06 12:22:07 +02:00
public class ConnectionPanel : MonoBehaviour
{
2022-12-04 19:19:07 +02:00
public Button btnLocal;
public Button btnRemote;
public Button btnHost;
public InputField inpIp;
public InputField inpPort;
public Text txtIp;
public Text txtPort;
private GameManager gameManager => GameManager.Instance;
private GgpoPerformancePanel perf;
2022-12-06 12:22:07 +02:00
private void Awake()
{
2022-12-04 19:19:07 +02:00
gameManager.OnRunningChanged += OnRunningChanged;
perf = FindObjectOfType<GgpoPerformancePanel>();
perf.Setup();
btnHost.onClick.AddListener(OnHostClick);
btnRemote.onClick.AddListener(OnRemoteClick);
btnLocal.onClick.AddListener(OnLocalClick);
inpIp.text = "127.0.0.1";
inpPort.text = "7000";
txtIp.text = "127.0.0.1";
txtPort.text = "7001";
}
2022-12-06 12:22:07 +02:00
private void OnDestroy()
{
2022-12-04 19:19:07 +02:00
gameManager.OnRunningChanged -= OnRunningChanged;
btnHost.onClick.RemoveListener(OnHostClick);
btnRemote.onClick.RemoveListener(OnRemoteClick);
btnLocal.onClick.RemoveListener(OnLocalClick);
}
2022-12-06 12:22:07 +02:00
private List<Connections> GetConnections()
{
2022-12-04 19:19:07 +02:00
var list = new List<Connections>();
2022-12-06 12:22:07 +02:00
list.Add(new Connections()
{
2022-12-04 19:19:07 +02:00
ip = inpIp.text,
port = ushort.Parse(inpPort.text),
2022-12-06 12:22:07 +02:00
spectator = false,
2022-12-04 19:19:07 +02:00
});
2022-12-06 12:22:07 +02:00
list.Add(new Connections()
{
2022-12-04 19:19:07 +02:00
ip = txtIp.text,
port = ushort.Parse(txtPort.text),
2022-12-06 12:22:07 +02:00
spectator = false,
2022-12-04 19:19:07 +02:00
});
return list;
}
2022-12-06 12:22:07 +02:00
private void OnHostClick()
{
2022-12-04 19:19:07 +02:00
gameManager.StartGGPOGame(perf, GetConnections(), 0);
}
2022-12-06 12:22:07 +02:00
private void OnRemoteClick()
{
2022-12-04 19:19:07 +02:00
gameManager.StartGGPOGame(perf, GetConnections(), 1);
}
2022-12-06 12:22:07 +02:00
private void OnLocalClick()
{
2022-12-04 19:19:07 +02:00
gameManager.StartLocalGame();
}
2022-12-06 12:22:07 +02:00
private void OnRunningChanged(bool isRunning)
{
2022-12-04 19:19:07 +02:00
gameObject.SetActive(!isRunning);
}
}
}