Skip to content

Commit 27e34f4

Browse files
committed
Fixed index out of range by adding nullcheck to read/write params. Null cached params when ownership to prevent another out-of-range.
1 parent a6a0b13 commit 27e34f4

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

MLAPI/MonoBehaviours/Prototyping/NetworkedAnimator.cs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ public Animator animator
2222
set
2323
{
2424
m_Animator = value;
25-
m_AnimatorParameters = m_Animator.parameters;
2625
ResetParameterOptions();
2726
}
2827
}
@@ -75,6 +74,7 @@ public void ResetParameterOptions()
7574
{
7675
Debug.Log("ResetParameterOptions");
7776
m_ParameterSendBits = 0;
77+
m_AnimatorParameters = null;
7878
}
7979

8080
void FixedUpdate()
@@ -248,6 +248,7 @@ internal void HandleAnimTriggerMsg(int clientId, byte[] data)
248248

249249
void WriteParameters(BinaryWriter writer, bool autoSend)
250250
{
251+
if (m_AnimatorParameters == null) m_AnimatorParameters = m_Animator.parameters;
251252
for (int i = 0; i < m_AnimatorParameters.Length; i++)
252253
{
253254
if (autoSend && !GetParameterAutoSend(i))
@@ -278,7 +279,8 @@ void WriteParameters(BinaryWriter writer, bool autoSend)
278279
}
279280

280281
void ReadParameters(BinaryReader reader, bool autoSend)
281-
{
282+
{
283+
if (m_AnimatorParameters == null) m_AnimatorParameters = m_Animator.parameters;
282284
for (int i = 0; i < m_AnimatorParameters.Length; i++)
283285
{
284286
if (autoSend && !GetParameterAutoSend(i))
@@ -337,5 +339,15 @@ public void SetTrigger(int hash)
337339
}
338340
}
339341
}
342+
343+
public override void OnGainedOwnership()
344+
{
345+
ResetParameterOptions();
346+
}
347+
348+
public override void OnLostOwnership()
349+
{
350+
ResetParameterOptions();
351+
}
340352
}
341353
}

0 commit comments

Comments
 (0)