Skip to content

Commit

Permalink
fix: only add NetworkDiagnostics events for first static instance (#2)
Browse files Browse the repository at this point in the history
  • Loading branch information
GoToNightmare authored Sep 7, 2022
1 parent aafb947 commit d827c4d
Showing 1 changed file with 23 additions and 19 deletions.
42 changes: 23 additions & 19 deletions Assets/Mirage.Profiler/Runtime/NetworkProfilerRecorder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,31 +28,35 @@ private void Start()
Debug.LogWarning("NetworkProfilerBehaviour only works in editor");
return;
#endif


if (Instance == null)
{
#if UNITY_EDITOR
_lastProcessedFrame = ProfilerDriver.lastFrameIndex;
_lastProcessedFrame = ProfilerDriver.lastFrameIndex;
#endif

var provider = new NetworkInfoProvider();
_sentCounter = new CountRecorder(null, provider, Counters.SentCount, Counters.SentBytes, Counters.SentPerSecond);
_receivedCounter = new CountRecorder(null, provider, Counters.ReceiveCount, Counters.ReceiveBytes, Counters.ReceivePerSecond);
NetworkDiagnostics.InMessageEvent += _receivedCounter.OnMessage;
NetworkDiagnostics.OutMessageEvent += _sentCounter.OnMessage;

Debug.Assert(Instance == null);
Instance = this;
DontDestroyOnLoad(this);
var provider = new NetworkInfoProvider();
_sentCounter = new CountRecorder(null, provider, Counters.SentCount, Counters.SentBytes, Counters.SentPerSecond);
_receivedCounter = new CountRecorder(null, provider, Counters.ReceiveCount, Counters.ReceiveBytes, Counters.ReceivePerSecond);
NetworkDiagnostics.InMessageEvent += _receivedCounter.OnMessage;
NetworkDiagnostics.OutMessageEvent += _sentCounter.OnMessage;

Instance = this;
DontDestroyOnLoad(this);
}
}

private void OnDestroy()
{
if (_receivedCounter != null)
NetworkDiagnostics.InMessageEvent -= _receivedCounter.OnMessage;
if (_sentCounter != null)
NetworkDiagnostics.OutMessageEvent -= _sentCounter.OnMessage;

Debug.Assert(Instance == this);
Instance = null;
if (Instance == this)
{
if (_receivedCounter != null)
NetworkDiagnostics.InMessageEvent -= _receivedCounter.OnMessage;
if (_sentCounter != null)
NetworkDiagnostics.OutMessageEvent -= _sentCounter.OnMessage;

Instance = null;
}
}

#if UNITY_EDITOR
Expand Down

0 comments on commit d827c4d

Please sign in to comment.