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

UnserializeModeTransform() private method

private UnserializeModeTransform ( NetworkReader reader, bool initialState ) : void
reader NetworkReader
initialState bool
return void
        private void UnserializeModeTransform(NetworkReader reader, bool initialState)
        {
            if (base.hasAuthority)
            {
                reader.ReadVector3();
                if (this.syncRotationAxis != AxisSyncMode.None)
                {
                    UnserializeRotation3D(reader, this.syncRotationAxis, this.rotationSyncCompression);
                }
            }
            else if (base.isServer && (this.m_ClientMoveCallback3D != null))
            {
                Vector3 position = reader.ReadVector3();
                Vector3 zero = Vector3.zero;
                Quaternion identity = Quaternion.identity;
                if (this.syncRotationAxis != AxisSyncMode.None)
                {
                    identity = UnserializeRotation3D(reader, this.syncRotationAxis, this.rotationSyncCompression);
                }
                if (this.m_ClientMoveCallback3D(ref position, ref zero, ref identity))
                {
                    base.transform.position = position;
                    if (this.syncRotationAxis != AxisSyncMode.None)
                    {
                        base.transform.rotation = identity;
                    }
                }
            }
            else
            {
                base.transform.position = reader.ReadVector3();
                if (this.syncRotationAxis != AxisSyncMode.None)
                {
                    base.transform.rotation = UnserializeRotation3D(reader, this.syncRotationAxis, this.rotationSyncCompression);
                }
            }
        }

Usage Example

コード例 #1
0
        public static void HandleTransform(NetworkMessage netMsg)
        {
            NetworkInstanceId networkInstanceId = netMsg.reader.ReadNetworkId();
            GameObject        gameObject        = NetworkServer.FindLocalObject(networkInstanceId);

            if (gameObject == null)
            {
                if (LogFilter.logError)
                {
                    Debug.LogError("HandleTransform no gameObject");
                }
                return;
            }
            NetworkTransform component = gameObject.GetComponent <NetworkTransform>();

            if (component == null)
            {
                if (LogFilter.logError)
                {
                    Debug.LogError("HandleTransform null target");
                }
            }
            else if (!component.localPlayerAuthority)
            {
                if (LogFilter.logError)
                {
                    Debug.LogError("HandleTransform no localPlayerAuthority");
                }
            }
            else if (netMsg.conn.clientOwnedObjects == null)
            {
                if (LogFilter.logError)
                {
                    Debug.LogError("HandleTransform object not owned by connection");
                }
            }
            else if (netMsg.conn.clientOwnedObjects.Contains(networkInstanceId))
            {
                switch (component.transformSyncMode)
                {
                case TransformSyncMode.SyncNone:
                    return;

                case TransformSyncMode.SyncTransform:
                    component.UnserializeModeTransform(netMsg.reader, initialState: false);
                    break;

                case TransformSyncMode.SyncRigidbody3D:
                    component.UnserializeMode3D(netMsg.reader, initialState: false);
                    break;

                case TransformSyncMode.SyncRigidbody2D:
                    component.UnserializeMode2D(netMsg.reader, initialState: false);
                    break;

                case TransformSyncMode.SyncCharacterController:
                    component.UnserializeModeCharacterController(netMsg.reader, initialState: false);
                    break;
                }
                component.m_LastClientSyncTime = Time.time;
            }
            else if (LogFilter.logWarn)
            {
                Debug.LogWarning("HandleTransform netId:" + networkInstanceId + " is not for a valid player");
            }
        }