73 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| #if UNITY_EDITOR || DEVELOPMENT_BUILD
 | |
| using FishNet.Managing.Logging;
 | |
| using FishNet.Object;
 | |
| using FishNet.Serializing;
 | |
| using FishNet.Transporting;
 | |
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Text;
 | |
| using UnityEngine;
 | |
| 
 | |
| namespace FishNet.Managing.Debugging
 | |
| {
 | |
| 
 | |
|     internal class ParseLogger
 | |
|     {
 | |
|         /// <summary>
 | |
|         /// Contains the last several non-split packets to arrive. This is used for debugging.
 | |
|         /// </summary>
 | |
|         private Queue<PacketId> _incomingPacketIds = new Queue<PacketId>();
 | |
|         /// <summary>
 | |
|         /// Maximum number of packets allowed to be queued.
 | |
|         /// </summary>
 | |
|         private const int PACKET_COUNT = 5;
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Resets data.
 | |
|         /// </summary>
 | |
|         internal void Reset()
 | |
|         {
 | |
|             _incomingPacketIds.Clear();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Adds a packet to data.
 | |
|         /// </summary>
 | |
|         /// <param name="pId"></param>
 | |
|         internal void AddPacket(PacketId pId)
 | |
|         {
 | |
|             _incomingPacketIds.Enqueue(pId);
 | |
|             if (_incomingPacketIds.Count > PACKET_COUNT)
 | |
|                 _incomingPacketIds.Dequeue();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Prints current data.
 | |
|         /// </summary>
 | |
|         internal void Print(NetworkManager nm)
 | |
|         {
 | |
|             if (nm == null)
 | |
|                 nm = InstanceFinder.NetworkManager;
 | |
| 
 | |
|             //Only log if a NM was found.
 | |
|             if (nm != null)
 | |
|             {
 | |
|                 StringBuilder sb = new StringBuilder();
 | |
|                 foreach (PacketId item in _incomingPacketIds)
 | |
|                     sb.Insert(0, $"{item.ToString()}{Environment.NewLine}");
 | |
| 
 | |
|                 NetworkObject lastNob = Reader.LastNetworkObject;
 | |
|                 string nobData = (lastNob == null) ? "Unset" : $"Id {lastNob.ObjectId} on gameObject {lastNob.name}";
 | |
|                 NetworkBehaviour lastNb = Reader.LastNetworkBehaviour;
 | |
|                 string nbData = (lastNb == null) ? "Unset" : lastNb.GetType().Name;
 | |
| 
 | |
|                 nm.LogError($"The last {_incomingPacketIds.Count} packets to arrive are: {Environment.NewLine}{sb.ToString()}");
 | |
|                 nm.LogError($"The last parsed NetworkObject is {nobData}, and NetworkBehaviour {nbData}.");
 | |
|             }
 | |
| 
 | |
|             Reset();
 | |
|         }
 | |
|     }
 | |
| 
 | |
| }
 | |
| #endif |