public QNetworkIdentity ReadNetworkIdentity() { var networkInstanceId = ReadNetworkId(); QNetworkIdentity result; if (networkInstanceId.IsEmpty()) { result = null; } else { var gameObject = QNetworkServer.active ? QNetworkServer.FindLocalObject(networkInstanceId) : QClientScene.FindLocalObject(networkInstanceId); if (gameObject == null) { Debug.Log($"ReadNetworkIdentity netId:{networkInstanceId}go: null"); result = null; } else { result = gameObject.GetComponent <QNetworkIdentity>(); } } return(result); }
public GameObject ReadGameObject() { var networkInstanceId = ReadNetworkId(); GameObject result; if (networkInstanceId.IsEmpty()) { result = null; } else { var gameObject = QNetworkServer.active ? QNetworkServer.FindLocalObject(networkInstanceId) : QClientScene.FindLocalObject(networkInstanceId); if (gameObject == null) { Debug.Log($"ReadGameObject netId:{networkInstanceId}go: null"); } result = gameObject; } return(result); }
public static void HandleTransform(QNetworkMessage netMsg) { var networkInstanceId = netMsg.Reader.ReadNetworkId(); var gameObject = QNetworkServer.FindLocalObject(networkInstanceId); if (gameObject == null) { QLog.Warning("Received NetworkTransform data for GameObject that doesn't exist"); } else { var component = gameObject.GetComponent <QNetworkTransform>(); if (component == null) { QLog.Warning("HandleTransform null target"); } else if (!component.LocalPlayerAuthority) { QLog.Warning("HandleTransform no localPlayerAuthority"); } else if (netMsg.Connection.ClientOwnedObjects == null) { QLog.Warning("HandleTransform object not owned by connection"); } else if (netMsg.Connection.ClientOwnedObjects.Contains(networkInstanceId)) { component.UnserializeModeTransform(netMsg.Reader, false); component.LastSyncTime = Time.time; } else { QLog.Warning( $"HandleTransform netId:{networkInstanceId} is not for a valid player"); } } }
protected virtual void Dispose(bool disposing) { if (!m_Disposed && m_Channels != null) { foreach (var channel in m_Channels) { channel.Dispose(); } } m_Channels = null; if (ClientOwnedObjects != null) { foreach (var netId in ClientOwnedObjects) { var gameObject = QNetworkServer.FindLocalObject(netId); if (gameObject != null) { gameObject.GetComponent <QNetworkIdentity>().ClearClientOwner(); } } } ClientOwnedObjects = null; m_Disposed = true; }