enhanced UDP audio sender/receiver scripts with metrics for packet tracking and improved NPC assignment logic
This commit is contained in:
@ -58,12 +58,19 @@ namespace Convai.Scripts.Runtime.Multiplayer
|
||||
Lost
|
||||
}
|
||||
|
||||
// Event log for debugging
|
||||
private System.Collections.Generic.List<string> _eventLog = new System.Collections.Generic.List<string>();
|
||||
private const int MAX_LOG_ENTRIES = 20;
|
||||
|
||||
// Public properties
|
||||
public string PeerIP => _peerIP;
|
||||
public byte LocalPlayerID => localPlayerID;
|
||||
public byte PeerPlayerID => _peerPlayerID;
|
||||
public ConnectionState CurrentState => _connectionState;
|
||||
public bool IsConnected => _connectionState == ConnectionState.Connected;
|
||||
public float TimeSinceLastPeerPacket => _connectionState == ConnectionState.Connected ?
|
||||
(float)(DateTime.UtcNow - _lastPeerPacketTime).TotalSeconds : -1f;
|
||||
public System.Collections.Generic.List<string> EventLog => _eventLog;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
@ -91,6 +98,7 @@ namespace Convai.Scripts.Runtime.Multiplayer
|
||||
}
|
||||
|
||||
_cancellationTokenSource = new CancellationTokenSource();
|
||||
LogEvent($"🔍 Discovery started (Player {localPlayerID})");
|
||||
StartDiscovery();
|
||||
}
|
||||
|
||||
@ -401,6 +409,7 @@ namespace Convai.Scripts.Runtime.Multiplayer
|
||||
SetConnectionState(ConnectionState.Connected);
|
||||
|
||||
ConvaiLogger.Info($"✅ Peer discovered! Player {peerPlayerID} at {peerIP}", ConvaiLogger.LogCategory.Character);
|
||||
LogEvent($"✅ Peer discovered! Player {peerPlayerID} at {peerIP}");
|
||||
|
||||
// Notify listeners
|
||||
OnPeerDiscovered?.Invoke(peerIP);
|
||||
@ -409,6 +418,7 @@ namespace Convai.Scripts.Runtime.Multiplayer
|
||||
private void HandlePeerLost()
|
||||
{
|
||||
ConvaiLogger.Warn($"⚠️ Peer connection lost (Player {_peerPlayerID} at {_peerIP})", ConvaiLogger.LogCategory.Character);
|
||||
LogEvent($"⚠️ Peer connection lost (Player {_peerPlayerID})");
|
||||
|
||||
string lostPeerIP = _peerIP;
|
||||
_peerIP = "";
|
||||
@ -441,6 +451,7 @@ namespace Convai.Scripts.Runtime.Multiplayer
|
||||
public void RestartDiscovery()
|
||||
{
|
||||
ConvaiLogger.Info("Manually restarting peer discovery", ConvaiLogger.LogCategory.Character);
|
||||
LogEvent("🔄 Manually restarting discovery");
|
||||
_peerIP = "";
|
||||
_peerPlayerID = 0;
|
||||
SetConnectionState(ConnectionState.Discovering);
|
||||
@ -455,6 +466,19 @@ namespace Convai.Scripts.Runtime.Multiplayer
|
||||
ConvaiLogger.Info($"Peer Player ID: {_peerPlayerID}", ConvaiLogger.LogCategory.Character);
|
||||
ConvaiLogger.Info($"Listen Port: {_listenPort}", ConvaiLogger.LogCategory.Character);
|
||||
}
|
||||
|
||||
private void LogEvent(string message)
|
||||
{
|
||||
string timestamp = DateTime.Now.ToString("HH:mm:ss");
|
||||
string logEntry = $"[{timestamp}] {message}";
|
||||
_eventLog.Add(logEntry);
|
||||
|
||||
// Keep only last N entries
|
||||
if (_eventLog.Count > MAX_LOG_ENTRIES)
|
||||
{
|
||||
_eventLog.RemoveAt(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user