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");
                }
            }
        }
Beispiel #4
0
 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;
 }