Completely eliminate allocating new AnimatorParameterController array in network animator.
This commit is contained in:
parent
39042c4987
commit
a6a0b136ff
@ -13,6 +13,8 @@ namespace MLAPI
|
||||
[SerializeField] uint m_ParameterSendBits;
|
||||
[SerializeField] float m_SendRate = 0.1f;
|
||||
|
||||
AnimatorControllerParameter[] m_AnimatorParameters;
|
||||
|
||||
// properties
|
||||
public Animator animator
|
||||
{
|
||||
@ -20,6 +22,7 @@ namespace MLAPI
|
||||
set
|
||||
{
|
||||
m_Animator = value;
|
||||
m_AnimatorParameters = m_Animator.parameters;
|
||||
ResetParameterOptions();
|
||||
}
|
||||
}
|
||||
@ -245,13 +248,12 @@ namespace MLAPI
|
||||
|
||||
void WriteParameters(BinaryWriter writer, bool autoSend)
|
||||
{
|
||||
AnimatorControllerParameter[] parameters = m_Animator.parameters;
|
||||
for (int i = 0; i < parameters.Length; i++)
|
||||
for (int i = 0; i < m_AnimatorParameters.Length; i++)
|
||||
{
|
||||
if (autoSend && !GetParameterAutoSend(i))
|
||||
continue;
|
||||
|
||||
AnimatorControllerParameter par = parameters[i];
|
||||
AnimatorControllerParameter par = m_AnimatorParameters[i];
|
||||
if (par.type == AnimatorControllerParameterType.Int)
|
||||
{
|
||||
writer.Write((uint)m_Animator.GetInteger(par.nameHash));
|
||||
@ -276,14 +278,13 @@ namespace MLAPI
|
||||
}
|
||||
|
||||
void ReadParameters(BinaryReader reader, bool autoSend)
|
||||
{
|
||||
AnimatorControllerParameter[] parameters = m_Animator.parameters;
|
||||
for (int i = 0; i < parameters.Length; i++)
|
||||
{
|
||||
for (int i = 0; i < m_AnimatorParameters.Length; i++)
|
||||
{
|
||||
if (autoSend && !GetParameterAutoSend(i))
|
||||
continue;
|
||||
|
||||
AnimatorControllerParameter par = parameters[i];
|
||||
AnimatorControllerParameter par = m_AnimatorParameters[i];
|
||||
if (par.type == AnimatorControllerParameterType.Int)
|
||||
{
|
||||
int newValue = (int)reader.ReadUInt32();
|
||||
|
Loading…
x
Reference in New Issue
Block a user