Update FishNet

This commit is contained in:
2026-04-07 03:11:52 +07:00
parent 9675b7b31d
commit ba7513d478
869 changed files with 3675 additions and 2764 deletions
@@ -112,7 +112,7 @@ namespace FishNet.Managing.Client
}
PooledWriter writer = WriterPool.Retrieve();
BroadcastsSerializers.WriteBroadcast(NetworkManager, writer, message, ref channel);
BroadcastsSerializers.WriteBroadcast(writer, message);
ArraySegment<byte> segment = writer.GetArraySegment();
#if DEVELOPMENT && !UNITY_SERVER
@@ -13,6 +13,6 @@ AssetOrigin:
serializedVersion: 1
productId: 207815
packageName: 'FishNet: Networking Evolved'
packageVersion: 4.6.22R
packageVersion: 4.7.1R
assetPath: Assets/FishNet/Runtime/Managing/Client/ClientManager.Broadcast.cs
uploadId: 866910
uploadId: 892096
@@ -13,6 +13,6 @@ AssetOrigin:
serializedVersion: 1
productId: 207815
packageName: 'FishNet: Networking Evolved'
packageVersion: 4.6.22R
packageVersion: 4.7.1R
assetPath: Assets/FishNet/Runtime/Managing/Client/ClientManager.QOL.cs
uploadId: 866910
uploadId: 892096
@@ -141,7 +141,32 @@ namespace FishNet.Managing.Client
/// <summary>
/// Used to read splits.
/// </summary>
private SplitReader _splitReader = new();
private SplitReader _splitReader;
/// <summary>
/// Gets the current SplitReader.
/// </summary>
/// <returns></returns>
private bool TryGetSplitReader(int expectedMessages, out SplitReader splitReader)
{
if (_splitReader == null)
{
if (NetworkManager is null)
{
NetworkManagerExtensions.LogError($"SplitReader cannot be returned because the NetworkManager reference is null.");
splitReader = null;
return false;
}
_splitReader = ResettableObjectCaches<SplitReader>.Retrieve();
_splitReader.Initialize(NetworkManager, NetworkManager.TransportManager.MaximumClientPacketSize, isSenderClient: false, expectedMessages);
}
splitReader = _splitReader;
return true;
}
/// <summary>
/// </summary>
[NonSerialized]
@@ -447,18 +472,32 @@ namespace FishNet.Managing.Client
#endif
// Skip packetId.
reader.ReadPacketId();
int expectedMessages;
_splitReader.GetHeader(reader, out expectedMessages);
_splitReader.Write(NetworkManager.TimeManager.LastPacketTick.LastRemoteTick, reader, expectedMessages);
int expectedMessages = reader.ReadInt32();
if (!TryGetSplitReader(expectedMessages, out SplitReader splitReader))
{
NetworkManager.LogError($"Something went wrong when trying to get the [{nameof(splitReader)}] for a server message.");
return;
}
if (!splitReader.Write(reader))
{
NetworkManager.LogError($"Something went wrong when writing a split message from the server.");
return;
}
/* If fullMessage returns 0 count then the split
* has not written fully yet. Otherwise, if there is
* data within then reinitialize reader with the
* full message. */
ArraySegment<byte> fullMessage = _splitReader.GetFullMessage();
if (fullMessage.Count == 0)
if (!splitReader.TryGetFullMessage(out ArraySegment<byte> fullMessage))
return;
reader.Initialize(fullMessage, NetworkManager, dataSource);
//Once here the split reader can be stored.
ResettableObjectCaches<SplitReader>.StoreAndDefault(ref _splitReader);
}
while (reader.Remaining > 0)
@@ -468,16 +507,6 @@ namespace FishNet.Managing.Client
packetId = reader.ReadPacketId();
#if DEVELOPMENT
NetworkManager.PacketIdHistory.ReceivedPacket(packetId, packetFromServer: true);
// if (!NetworkManager.IsServerStarted)
// print = true;
// if (print)
// {
// if (packetId == PacketId.ObserversRpc)
// Debug.Log($"PacketId {packetId} - Remaining {reader.Remaining}.");
// else
// Debug.LogWarning($"PacketId {packetId} - Remaining {reader.Remaining}.");
// }
// print = false;
#endif
}
bool spawnOrDespawn = packetId == PacketId.ObjectSpawn || packetId == PacketId.ObjectDespawn;
@@ -13,6 +13,6 @@ AssetOrigin:
serializedVersion: 1
productId: 207815
packageName: 'FishNet: Networking Evolved'
packageVersion: 4.6.22R
packageVersion: 4.7.1R
assetPath: Assets/FishNet/Runtime/Managing/Client/ClientManager.cs
uploadId: 866910
uploadId: 892096
@@ -13,6 +13,6 @@ AssetOrigin:
serializedVersion: 1
productId: 207815
packageName: 'FishNet: Networking Evolved'
packageVersion: 4.6.22R
packageVersion: 4.7.1R
assetPath: Assets/FishNet/Runtime/Managing/Client/Editor/ClientManagerEditor.cs
uploadId: 866910
uploadId: 892096
@@ -13,6 +13,6 @@ AssetOrigin:
serializedVersion: 1
productId: 207815
packageName: 'FishNet: Networking Evolved'
packageVersion: 4.6.22R
packageVersion: 4.7.1R
assetPath: Assets/FishNet/Runtime/Managing/Client/Object/ClientObjects.RpcLinks.cs
uploadId: 866910
uploadId: 892096
@@ -13,6 +13,6 @@ AssetOrigin:
serializedVersion: 1
productId: 207815
packageName: 'FishNet: Networking Evolved'
packageVersion: 4.6.22R
packageVersion: 4.7.1R
assetPath: Assets/FishNet/Runtime/Managing/Client/Object/ClientObjects.cs
uploadId: 866910
uploadId: 892096
@@ -13,6 +13,6 @@ AssetOrigin:
serializedVersion: 1
productId: 207815
packageName: 'FishNet: Networking Evolved'
packageVersion: 4.6.22R
packageVersion: 4.7.1R
assetPath: Assets/FishNet/Runtime/Managing/Client/Object/ObjectCaching.cs
uploadId: 866910
uploadId: 892096