コード例 #1
0
        public void OnPositionDataReceived(Data_Position positionData)
        {
            if (positionData.Id != _id)
            {
                return;
            }
            Vector3 newPos = positionData.Position;

            if (syncPosInterpolate)
            {
                _interpolatePos = newPos;
            }
            else
            {
                transform.position = newPos;
                _oldPos            = transform.position;
            }
        }
コード例 #2
0
        private void OnPositionDataReceived(Data_Position data)
        {
            if (!_networkObjects.ContainsKey(data.Id))
            {
                Debug.LogError($"Could not find network object with id: {data.Id}");
                return;
            }
            NetworkObject networkObject = _networkObjects[data.Id];
            SyncTransform syncTransform = networkObject.GetComponent <SyncTransform>();

            if (syncTransform && !data.Instantly)
            {
                syncTransform.OnPositionDataReceived(data);
            }
            else
            {
                networkObject.transform.position = data.Position;
            }
        }
コード例 #3
0
ファイル: Server.cs プロジェクト: Neromax65/NetworkGameServer
 /// <summary>
 /// Synchronize all network objects with client
 /// </summary>
 /// <param name="client">Client to synchronize</param>
 private void Synchronize(ConnectedClient client)
 {
     foreach (var networkObject in _networkObjects.Values)
     {
         if (networkObject.PrefabIndex != -1)
         {
             var spawnData = new Data_Spawn()
             {
                 PrefabIndex = networkObject.PrefabIndex,
                 Position    = networkObject.Position,
                 Rotation    = networkObject.Rotation
             };
             _dataPackets[client.Id].Add(spawnData);
         }
         else
         {
             var posData = new Data_Position()
             {
                 Id        = networkObject.Id,
                 Position  = networkObject.Position,
                 Instantly = true
             };
             _dataPackets[client.Id].Add(posData);
             var rotData = new Data_Rotation()
             {
                 Id        = networkObject.Id,
                 Rotation  = networkObject.Rotation,
                 Instantly = true
             };
             _dataPackets[client.Id].Add(rotData);
             var sclData = new Data_Scale()
             {
                 Id        = networkObject.Id,
                 Scale     = networkObject.Scale,
                 Instantly = true
             };
             _dataPackets[client.Id].Add(sclData);
         }
     }
 }