added peer discovery settings to NetworkConfig and updated UDP broadcasting scripts to handle peer discovery events
This commit is contained in:
@ -92,6 +92,14 @@ public class UDPAvatarBroadcaster : MonoBehaviour
|
||||
{
|
||||
broadcastAddress = cfg.ipAddress;
|
||||
broadcastPort = cfg.port;
|
||||
|
||||
// Subscribe to peer discovery if enabled
|
||||
if (cfg.useAutoDiscovery && Convai.Scripts.Runtime.Multiplayer.UDPPeerDiscovery.Instance != null)
|
||||
{
|
||||
Convai.Scripts.Runtime.Multiplayer.UDPPeerDiscovery.Instance.OnPeerDiscovered += HandlePeerDiscovered;
|
||||
Convai.Scripts.Runtime.Multiplayer.UDPPeerDiscovery.Instance.OnPeerLost += HandlePeerLost;
|
||||
Debug.Log("Avatar broadcaster subscribed to peer discovery");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -444,6 +452,13 @@ public class UDPAvatarBroadcaster : MonoBehaviour
|
||||
|
||||
void OnDestroy()
|
||||
{
|
||||
// Unsubscribe from peer discovery
|
||||
if (Convai.Scripts.Runtime.Multiplayer.UDPPeerDiscovery.Instance != null)
|
||||
{
|
||||
Convai.Scripts.Runtime.Multiplayer.UDPPeerDiscovery.Instance.OnPeerDiscovered -= HandlePeerDiscovered;
|
||||
Convai.Scripts.Runtime.Multiplayer.UDPPeerDiscovery.Instance.OnPeerLost -= HandlePeerLost;
|
||||
}
|
||||
|
||||
if (udpClient != null)
|
||||
{
|
||||
udpClient.Close();
|
||||
@ -451,6 +466,24 @@ public class UDPAvatarBroadcaster : MonoBehaviour
|
||||
}
|
||||
}
|
||||
|
||||
private void HandlePeerDiscovered(string peerIP)
|
||||
{
|
||||
broadcastAddress = peerIP;
|
||||
broadcastEndPoint = new IPEndPoint(IPAddress.Parse(peerIP), broadcastPort);
|
||||
Debug.Log($"👤 Avatar broadcaster now targeting peer at {peerIP}:{broadcastPort}");
|
||||
}
|
||||
|
||||
private void HandlePeerLost()
|
||||
{
|
||||
var cfg = NetworkConfig.Instance;
|
||||
if (cfg != null)
|
||||
{
|
||||
broadcastAddress = cfg.fallbackBroadcastIP;
|
||||
broadcastEndPoint = new IPEndPoint(IPAddress.Parse(broadcastAddress), broadcastPort);
|
||||
Debug.LogWarning($"👤 Avatar broadcaster falling back to broadcast: {broadcastAddress}");
|
||||
}
|
||||
}
|
||||
|
||||
void OnApplicationPause(bool pauseStatus)
|
||||
{
|
||||
enableBroadcast = !pauseStatus;
|
||||
|
||||
Reference in New Issue
Block a user