Skip to content

Commit a6a0b13

Browse files
committed
Completely eliminate allocating new AnimatorParameterController array in network animator.
1 parent 39042c4 commit a6a0b13

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

MLAPI/MonoBehaviours/Prototyping/NetworkedAnimator.cs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,16 @@ public class NetworkedAnimator : NetworkedBehaviour
1313
[SerializeField] uint m_ParameterSendBits;
1414
[SerializeField] float m_SendRate = 0.1f;
1515

16+
AnimatorControllerParameter[] m_AnimatorParameters;
17+
1618
// properties
1719
public Animator animator
1820
{
1921
get { return m_Animator; }
2022
set
2123
{
2224
m_Animator = value;
25+
m_AnimatorParameters = m_Animator.parameters;
2326
ResetParameterOptions();
2427
}
2528
}
@@ -245,13 +248,12 @@ internal void HandleAnimTriggerMsg(int clientId, byte[] data)
245248

246249
void WriteParameters(BinaryWriter writer, bool autoSend)
247250
{
248-
AnimatorControllerParameter[] parameters = m_Animator.parameters;
249-
for (int i = 0; i < parameters.Length; i++)
251+
for (int i = 0; i < m_AnimatorParameters.Length; i++)
250252
{
251253
if (autoSend && !GetParameterAutoSend(i))
252254
continue;
253255

254-
AnimatorControllerParameter par = parameters[i];
256+
AnimatorControllerParameter par = m_AnimatorParameters[i];
255257
if (par.type == AnimatorControllerParameterType.Int)
256258
{
257259
writer.Write((uint)m_Animator.GetInteger(par.nameHash));
@@ -276,14 +278,13 @@ void WriteParameters(BinaryWriter writer, bool autoSend)
276278
}
277279

278280
void ReadParameters(BinaryReader reader, bool autoSend)
279-
{
280-
AnimatorControllerParameter[] parameters = m_Animator.parameters;
281-
for (int i = 0; i < parameters.Length; i++)
281+
{
282+
for (int i = 0; i < m_AnimatorParameters.Length; i++)
282283
{
283284
if (autoSend && !GetParameterAutoSend(i))
284285
continue;
285286

286-
AnimatorControllerParameter par = parameters[i];
287+
AnimatorControllerParameter par = m_AnimatorParameters[i];
287288
if (par.type == AnimatorControllerParameterType.Int)
288289
{
289290
int newValue = (int)reader.ReadUInt32();

0 commit comments

Comments
 (0)