Exemple #1
0
        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;
                }
            }
        }
Exemple #2
0
        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;
                }
            }
        }