public static SerializeRotation3D ( |
||
writer | ||
rot | ||
mode | AxisSyncMode | |
compression | CompressionSyncMode | |
리턴 | void |
void SerializeModeTransform(NetworkWriter writer) { int start = writer.Position; foreach (var bone in m_Bones) { // position writer.Write(bone.localPosition); // rotation if (m_SyncRotationAxis != NetworkTransform.AxisSyncMode.None) { NetworkTransform.SerializeRotation3D(writer, bone.localRotation, syncRotationAxis, rotationSyncCompression); } } int sz = writer.Position - start; if (sz > 1400 && binarySize == 0) { // this is only generated once. Debug.LogWarning("NetworkSkeleton binary serialization size is very large:" + sz + ". Consider reducing the number of levels being synchronized."); } binarySize = sz; }
private void SerializeModeTransform(NetworkWriter writer) { writer.Write(this.m_Target.localPosition); if (this.m_SyncRotationAxis != NetworkTransform.AxisSyncMode.None) { NetworkTransform.SerializeRotation3D(writer, this.m_Target.localRotation, this.syncRotationAxis, this.rotationSyncCompression); } this.m_PrevPosition = this.m_Target.localPosition; this.m_PrevRotation = this.m_Target.localRotation; }
void SerializeModeTransform(NetworkWriter writer) { // position writer.Write(m_Target.localPosition); // rotation if (m_SyncRotationAxis != NetworkTransform.AxisSyncMode.None) { NetworkTransform.SerializeRotation3D(writer, m_Target.localRotation, syncRotationAxis, rotationSyncCompression); } m_PrevPosition = m_Target.localPosition; m_PrevRotation = m_Target.localRotation; }
//send transform data out void SerializeModeTransform(NetworkWriter writer) { int start = writer.Position; int i = 0; Quaternion relativeRotation; Vector3 relativePosition; print("Serialize: numbones=" + m_Bones.Length); foreach (var bone in m_Bones) { if (!bone) { //send bad quaternion if no bone Debug.Log("server skipping bone " + i + ",bone=" + boneIndex2MecanimMap[i]); i++; relativeRotation = Quaternion.identity; relativePosition = Vector3.zero; relativePosition.x = 111f; relativePosition.y = 222f; relativePosition.z = 333f; writer.Write(relativePosition); if (m_SyncRotationAxis != NetworkTransform.AxisSyncMode.None) { NetworkTransform.SerializeRotation3D(writer, relativeRotation, syncRotationAxis, rotationSyncCompression); } continue; } // position if (globalData) { relativePosition = bone.position; } else { relativePosition = bone.localPosition; } writer.Write(relativePosition); if (globalData) { // relativeRotation = Quaternion.Inverse(initialRotations[i]) * bone.rotation; relativeRotation = bone.rotation * Quaternion.Inverse(initialRotations[i]); } else { relativeRotation = bone.localRotation; // * Quaternion.Inverse(initialLocalRotations[i++]); } // rotation if (m_SyncRotationAxis != NetworkTransform.AxisSyncMode.None) { NetworkTransform.SerializeRotation3D(writer, relativeRotation, syncRotationAxis, rotationSyncCompression); } if (i == -1) { print("server processing bone " + i + ",bone=" + boneIndex2MecanimMap[i]); print("server processing bone " + i + ",rot=" + relativeRotation); print("server processing bone " + i + ",pos=" + relativePosition); } i++; } int sz = writer.Position - start; if (sz > 1400 && binarySize == 0) { // this is only generated once. Debug.LogWarning("NetworkSkeleton binary serialization size is very large:" + sz + ". Consider reducing the number of levels being synchronized."); } binarySize = sz; }