public void ReadTransform(Transform transform, TransformRecordMode mode, bool isLocal = false) { if (!isLocal) { switch (mode) { case TransformRecordMode.All: transform.position = new Vector3(binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle()); transform.eulerAngles = new Vector3(binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle()); break; case TransformRecordMode.OnlyPosition: transform.position = new Vector3(binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle()); break; case TransformRecordMode.OnlyRotationX: transform.eulerAngles = new Vector3(binaryReader.ReadSingle(), transform.eulerAngles.y, transform.eulerAngles.z); break; case TransformRecordMode.OnlyRotationY: transform.eulerAngles = new Vector3(transform.eulerAngles.x, binaryReader.ReadSingle(), transform.eulerAngles.z); break; case TransformRecordMode.OnlyRotationZ: transform.eulerAngles = new Vector3(transform.eulerAngles.x, transform.eulerAngles.y, binaryReader.ReadSingle()); break; } } else { switch (mode) { case TransformRecordMode.All: transform.localPosition = new Vector3(binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle()); transform.localEulerAngles = new Vector3(binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle()); break; case TransformRecordMode.OnlyPosition: transform.localPosition = new Vector3(binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle()); break; case TransformRecordMode.OnlyRotationX: transform.localEulerAngles = new Vector3(binaryReader.ReadSingle(), transform.localEulerAngles.y, transform.localEulerAngles.z); break; case TransformRecordMode.OnlyRotationY: transform.localEulerAngles = new Vector3(transform.localEulerAngles.x, binaryReader.ReadSingle(), transform.localEulerAngles.z); break; case TransformRecordMode.OnlyRotationZ: transform.localEulerAngles = new Vector3(transform.localEulerAngles.x, transform.localEulerAngles.y, binaryReader.ReadSingle()); break; } } }
private void RecordTransform(Transform transform, TransformRecordMode mode, bool isLocal = false) { if (!isLocal) { switch (mode) { case TransformRecordMode.All: binaryWriter.Write(transform.position.x); binaryWriter.Write(transform.position.y); binaryWriter.Write(transform.position.z); binaryWriter.Write(transform.eulerAngles.x); binaryWriter.Write(transform.eulerAngles.y); binaryWriter.Write(transform.eulerAngles.z); break; case TransformRecordMode.OnlyPosition: binaryWriter.Write(transform.position.x); binaryWriter.Write(transform.position.y); binaryWriter.Write(transform.position.z); break; case TransformRecordMode.OnlyRotationX: binaryWriter.Write(transform.eulerAngles.x); break; case TransformRecordMode.OnlyRotationY: binaryWriter.Write(transform.eulerAngles.y); break; case TransformRecordMode.OnlyRotationZ: binaryWriter.Write(transform.eulerAngles.z); break; } } else { switch (mode) { case TransformRecordMode.All: binaryWriter.Write(transform.localPosition.x); binaryWriter.Write(transform.localPosition.y); binaryWriter.Write(transform.localPosition.z); binaryWriter.Write(transform.localEulerAngles.x); binaryWriter.Write(transform.localEulerAngles.y); binaryWriter.Write(transform.localEulerAngles.z); break; case TransformRecordMode.OnlyPosition: binaryWriter.Write(transform.localPosition.x); binaryWriter.Write(transform.localPosition.y); binaryWriter.Write(transform.localPosition.z); break; case TransformRecordMode.OnlyRotationX: binaryWriter.Write(transform.localEulerAngles.x); break; case TransformRecordMode.OnlyRotationY: binaryWriter.Write(transform.localEulerAngles.y); break; case TransformRecordMode.OnlyRotationZ: binaryWriter.Write(transform.localEulerAngles.z); break; } } }