added peer discovery settings to NetworkConfig and updated UDP broadcasting scripts to handle peer discovery events
This commit is contained in:
@ -88,6 +88,14 @@ namespace Convai.Scripts.Runtime.Multiplayer
|
||||
{
|
||||
targetIP = cfg.ipAddress;
|
||||
targetPort = cfg.port;
|
||||
|
||||
// Subscribe to peer discovery if enabled
|
||||
if (cfg.useAutoDiscovery && UDPPeerDiscovery.Instance != null)
|
||||
{
|
||||
UDPPeerDiscovery.Instance.OnPeerDiscovered += HandlePeerDiscovered;
|
||||
UDPPeerDiscovery.Instance.OnPeerLost += HandlePeerLost;
|
||||
ConvaiLogger.Info("Audio sender subscribed to peer discovery", ConvaiLogger.LogCategory.Character);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -130,6 +138,13 @@ namespace Convai.Scripts.Runtime.Multiplayer
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
// Unsubscribe from peer discovery
|
||||
if (UDPPeerDiscovery.Instance != null)
|
||||
{
|
||||
UDPPeerDiscovery.Instance.OnPeerDiscovered -= HandlePeerDiscovered;
|
||||
UDPPeerDiscovery.Instance.OnPeerLost -= HandlePeerLost;
|
||||
}
|
||||
|
||||
StopRecording();
|
||||
_cancellationTokenSource?.Cancel();
|
||||
_cancellationTokenSource?.Dispose();
|
||||
@ -143,6 +158,24 @@ namespace Convai.Scripts.Runtime.Multiplayer
|
||||
_udpClient?.Close();
|
||||
}
|
||||
|
||||
private void HandlePeerDiscovered(string peerIP)
|
||||
{
|
||||
targetIP = peerIP;
|
||||
_targetEndPoint = new IPEndPoint(IPAddress.Parse(peerIP), targetPort);
|
||||
ConvaiLogger.Info($"🎤 Audio sender now targeting peer at {peerIP}:{targetPort}", ConvaiLogger.LogCategory.Character);
|
||||
}
|
||||
|
||||
private void HandlePeerLost()
|
||||
{
|
||||
var cfg = NetworkConfig.Instance;
|
||||
if (cfg != null)
|
||||
{
|
||||
targetIP = cfg.fallbackBroadcastIP;
|
||||
_targetEndPoint = new IPEndPoint(IPAddress.Parse(targetIP), targetPort);
|
||||
ConvaiLogger.Warn($"🎤 Audio sender falling back to broadcast: {targetIP}", ConvaiLogger.LogCategory.Character);
|
||||
}
|
||||
}
|
||||
|
||||
private void InitializeNetwork()
|
||||
{
|
||||
try
|
||||
|
||||
Reference in New Issue
Block a user