Skip to content

Commit

Permalink
perf: NetworkAnimator parameters use ArraySegment instead of Arrays (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
Lymdun committed May 27, 2021
1 parent e597570 commit 00f4833
Showing 1 changed file with 9 additions and 8 deletions.
17 changes: 9 additions & 8 deletions Assets/Mirage/Components/NetworkAnimator.cs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using System;
using System.Linq;
using Mirage.Logging;
using Mirage.Serialization;
Expand Down Expand Up @@ -106,7 +107,7 @@ void FixedUpdate()
using (PooledNetworkWriter writer = NetworkWriterPool.GetWriter())
{
WriteParameters(writer);
SendAnimationMessage(stateHash, normalizedTime, i, layerWeight[i], writer.ToArray());
SendAnimationMessage(stateHash, normalizedTime, i, layerWeight[i], writer.ToArraySegment());
}
}
}
Expand Down Expand Up @@ -164,12 +165,12 @@ void CheckSendRate()
using (PooledNetworkWriter writer = NetworkWriterPool.GetWriter())
{
if (WriteParameters(writer))
SendAnimationParametersMessage(writer.ToArray());
SendAnimationParametersMessage(writer.ToArraySegment());
}
}
}

void SendAnimationMessage(int stateHash, float normalizedTime, int layerId, float weight, byte[] parameters)
void SendAnimationMessage(int stateHash, float normalizedTime, int layerId, float weight, ArraySegment<byte> parameters)
{
if (IsServer)
{
Expand All @@ -181,7 +182,7 @@ void SendAnimationMessage(int stateHash, float normalizedTime, int layerId, floa
}
}

void SendAnimationParametersMessage(byte[] parameters)
void SendAnimationParametersMessage(ArraySegment<byte> parameters)
{
if (IsServer)
{
Expand Down Expand Up @@ -512,7 +513,7 @@ public void ResetTrigger(int hash)
#region server message handlers

[ServerRpc]
void CmdOnAnimationServerMessage(int stateHash, float normalizedTime, int layerId, float weight, byte[] parameters)
void CmdOnAnimationServerMessage(int stateHash, float normalizedTime, int layerId, float weight, ArraySegment<byte> parameters)
{
// Ignore messages from client if not in client authority mode
if (!ClientAuthority)
Expand All @@ -529,7 +530,7 @@ void CmdOnAnimationServerMessage(int stateHash, float normalizedTime, int layerI
}

[ServerRpc]
void CmdOnAnimationParametersServerMessage(byte[] parameters)
void CmdOnAnimationParametersServerMessage(ArraySegment<byte> parameters)
{
// Ignore messages from client if not in client authority mode
if (!ClientAuthority)
Expand Down Expand Up @@ -584,14 +585,14 @@ void CmdOnAnimationResetTriggerServerMessage(int hash)
#region client message handlers

[ClientRpc]
void RpcOnAnimationClientMessage(int stateHash, float normalizedTime, int layerId, float weight, byte[] parameters)
void RpcOnAnimationClientMessage(int stateHash, float normalizedTime, int layerId, float weight, ArraySegment<byte> parameters)
{
using (PooledNetworkReader networkReader = NetworkReaderPool.GetReader(parameters))
HandleAnimMsg(stateHash, normalizedTime, layerId, weight, networkReader);
}

[ClientRpc]
void RpcOnAnimationParametersClientMessage(byte[] parameters)
void RpcOnAnimationParametersClientMessage(ArraySegment<byte> parameters)
{
using (PooledNetworkReader networkReader = NetworkReaderPool.GetReader(parameters))
HandleAnimParamsMsg(networkReader);
Expand Down

0 comments on commit 00f4833

Please sign in to comment.