Moved a couple of folders and wrote some code
This commit is contained in:
63
Assets/Packages/FishNet/Runtime/Managing/Utility/Utility.cs
Normal file
63
Assets/Packages/FishNet/Runtime/Managing/Utility/Utility.cs
Normal file
@ -0,0 +1,63 @@
|
||||
using FishNet.Object;
|
||||
using FishNet.Serializing;
|
||||
using FishNet.Transporting;
|
||||
using UnityEngine;
|
||||
|
||||
namespace FishNet.Managing.Utility
|
||||
{
|
||||
|
||||
public class Packets
|
||||
{
|
||||
/// <summary>
|
||||
/// Returns written data length for packet.
|
||||
/// </summary>
|
||||
internal static int GetPacketLength(ushort packetId, PooledReader reader, Channel channel)
|
||||
{
|
||||
/* Broadcast is a special circumstance where data
|
||||
* will not be purged even if unreliable.
|
||||
* This is because a broadcast receiver may not
|
||||
* be set, which could be intentional. Because of this
|
||||
* length is always sent to skip
|
||||
* past the broadcast data.
|
||||
*
|
||||
* Reliables also need length read in the instance a client
|
||||
* sends data to an object which server is despawning. Without
|
||||
* parsing length the remainer data from client will be corrupt. */
|
||||
PacketId pid = (PacketId)packetId;
|
||||
if (channel == Channel.Reliable ||
|
||||
pid == PacketId.Broadcast ||
|
||||
pid == PacketId.SyncVar
|
||||
)
|
||||
{
|
||||
return reader.ReadInt32();
|
||||
}
|
||||
//Unreliable purges remaining.
|
||||
else if (channel == Channel.Unreliable)
|
||||
{
|
||||
return (int)MissingObjectPacketLength.PurgeRemaiming;
|
||||
}
|
||||
/* Unhandled. This shouldn't be possible
|
||||
* since both reliable and unreliable is checked.
|
||||
* There are no other options. This is merely here
|
||||
* for a sanity check. */
|
||||
else
|
||||
{
|
||||
LogError($"Operation is unhandled for packetId {(PacketId)packetId} on channel {channel}.");
|
||||
return (int)MissingObjectPacketLength.PurgeRemaiming;
|
||||
}
|
||||
|
||||
//Logs an error message.
|
||||
void LogError(string message)
|
||||
{
|
||||
if (reader.NetworkManager != null)
|
||||
reader.NetworkManager.LogError(message);
|
||||
else
|
||||
NetworkManager.StaticLogError(message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: facab6859c82ccd49b2d1c6b80404726
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Reference in New Issue
Block a user