Merge pull request #12 from angusmf/master
Avoid allocations in NetworkedAnimator
This commit is contained in:
commit
f0c0616e70
@ -13,6 +13,8 @@ namespace MLAPI
|
|||||||
[SerializeField] uint m_ParameterSendBits;
|
[SerializeField] uint m_ParameterSendBits;
|
||||||
[SerializeField] float m_SendRate = 0.1f;
|
[SerializeField] float m_SendRate = 0.1f;
|
||||||
|
|
||||||
|
AnimatorControllerParameter[] m_AnimatorParameters;
|
||||||
|
|
||||||
// properties
|
// properties
|
||||||
public Animator animator
|
public Animator animator
|
||||||
{
|
{
|
||||||
@ -72,6 +74,7 @@ namespace MLAPI
|
|||||||
{
|
{
|
||||||
Debug.Log("ResetParameterOptions");
|
Debug.Log("ResetParameterOptions");
|
||||||
m_ParameterSendBits = 0;
|
m_ParameterSendBits = 0;
|
||||||
|
m_AnimatorParameters = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FixedUpdate()
|
void FixedUpdate()
|
||||||
@ -245,12 +248,13 @@ namespace MLAPI
|
|||||||
|
|
||||||
void WriteParameters(BinaryWriter writer, bool autoSend)
|
void WriteParameters(BinaryWriter writer, bool autoSend)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < m_Animator.parameters.Length; i++)
|
if (m_AnimatorParameters == null) m_AnimatorParameters = m_Animator.parameters;
|
||||||
|
for (int i = 0; i < m_AnimatorParameters.Length; i++)
|
||||||
{
|
{
|
||||||
if (autoSend && !GetParameterAutoSend(i))
|
if (autoSend && !GetParameterAutoSend(i))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
AnimatorControllerParameter par = m_Animator.parameters[i];
|
AnimatorControllerParameter par = m_AnimatorParameters[i];
|
||||||
if (par.type == AnimatorControllerParameterType.Int)
|
if (par.type == AnimatorControllerParameterType.Int)
|
||||||
{
|
{
|
||||||
writer.Write((uint)m_Animator.GetInteger(par.nameHash));
|
writer.Write((uint)m_Animator.GetInteger(par.nameHash));
|
||||||
@ -276,12 +280,13 @@ namespace MLAPI
|
|||||||
|
|
||||||
void ReadParameters(BinaryReader reader, bool autoSend)
|
void ReadParameters(BinaryReader reader, bool autoSend)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < m_Animator.parameters.Length; i++)
|
if (m_AnimatorParameters == null) m_AnimatorParameters = m_Animator.parameters;
|
||||||
|
for (int i = 0; i < m_AnimatorParameters.Length; i++)
|
||||||
{
|
{
|
||||||
if (autoSend && !GetParameterAutoSend(i))
|
if (autoSend && !GetParameterAutoSend(i))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
AnimatorControllerParameter par = m_Animator.parameters[i];
|
AnimatorControllerParameter par = m_AnimatorParameters[i];
|
||||||
if (par.type == AnimatorControllerParameterType.Int)
|
if (par.type == AnimatorControllerParameterType.Int)
|
||||||
{
|
{
|
||||||
int newValue = (int)reader.ReadUInt32();
|
int newValue = (int)reader.ReadUInt32();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user