/// <summary> /// Custom Serialization /// </summary> /// <param name="writer"></param> /// <param name="initialState"></param> /// <returns></returns> public override bool OnSerialize(NetworkWriter writer, bool initialState) { bool changed = base.OnSerialize(writer, initialState); if (initialState) { for (int i = 0; i < animator.layerCount; i++) { if (animator.IsInTransition(i)) { AnimatorStateInfo st = animator.GetNextAnimatorStateInfo(i); writer.WriteInt32(st.fullPathHash); writer.WriteSingle(st.normalizedTime); } else { AnimatorStateInfo st = animator.GetCurrentAnimatorStateInfo(i); writer.WriteInt32(st.fullPathHash); writer.WriteSingle(st.normalizedTime); } writer.WriteSingle(animator.GetLayerWeight(i)); } WriteParameters(writer, initialState); return(true); } return(changed); }