UnityEngine.Networking.NetworkTransform.UnserializeRotation3D C# (CSharp) Method

UnserializeRotation3D() public static method

public static UnserializeRotation3D ( NetworkReader reader, AxisSyncMode mode, CompressionSyncMode compression ) : Quaternion
reader NetworkReader
mode AxisSyncMode
compression CompressionSyncMode
return UnityEngine.Quaternion
        public static Quaternion UnserializeRotation3D(NetworkReader reader, AxisSyncMode mode, CompressionSyncMode compression)
        {
            Quaternion identity = Quaternion.identity;
            Vector3 zero = Vector3.zero;
            switch (mode)
            {
                case AxisSyncMode.None:
                    return identity;

                case AxisSyncMode.AxisX:
                    zero.Set(ReadAngle(reader, compression), 0f, 0f);
                    identity.eulerAngles = zero;
                    return identity;

                case AxisSyncMode.AxisY:
                    zero.Set(0f, ReadAngle(reader, compression), 0f);
                    identity.eulerAngles = zero;
                    return identity;

                case AxisSyncMode.AxisZ:
                    zero.Set(0f, 0f, ReadAngle(reader, compression));
                    identity.eulerAngles = zero;
                    return identity;

                case AxisSyncMode.AxisXY:
                    zero.Set(ReadAngle(reader, compression), ReadAngle(reader, compression), 0f);
                    identity.eulerAngles = zero;
                    return identity;

                case AxisSyncMode.AxisXZ:
                    zero.Set(ReadAngle(reader, compression), 0f, ReadAngle(reader, compression));
                    identity.eulerAngles = zero;
                    return identity;

                case AxisSyncMode.AxisYZ:
                    zero.Set(0f, ReadAngle(reader, compression), ReadAngle(reader, compression));
                    identity.eulerAngles = zero;
                    return identity;

                case AxisSyncMode.AxisXYZ:
                    zero.Set(ReadAngle(reader, compression), ReadAngle(reader, compression), ReadAngle(reader, compression));
                    identity.eulerAngles = zero;
                    return identity;
            }
            return identity;
        }

Usage Example

コード例 #1
0
        void UnserializeModeTransform(NetworkReader reader, bool initialState)
        {
            if (hasAuthority)
            {
                // this component must read the data that the server wrote, even if it ignores it.
                // otherwise the NetworkReader stream will still contain that data for the next component.

                for (int i = 0; i < m_Bones.Length; i++)
                {
                    // position
                    reader.ReadVector3();

                    if (syncRotationAxis != NetworkTransform.AxisSyncMode.None)
                    {
                        NetworkTransform.UnserializeRotation3D(reader, syncRotationAxis, rotationSyncCompression);
                    }
                }
                return;
            }

            for (int i = 0; i < m_Bones.Length; i++)
            {
                var boneInfo = m_BoneInfos[i];

                // position
                boneInfo.m_TargetSyncPosition = reader.ReadVector3();

                // rotation
                if (syncRotationAxis != NetworkTransform.AxisSyncMode.None)
                {
                    var rot = NetworkTransform.UnserializeRotation3D(reader, syncRotationAxis, rotationSyncCompression);
                    boneInfo.m_TargetSyncRotation3D = rot;
                }
            }
        }
All Usage Examples Of UnityEngine.Networking.NetworkTransform::UnserializeRotation3D