public void OnScaleDataReceived(Data_Scale scaleData) { if (scaleData.Id != _id) { return; } Vector3 newScl = scaleData.Scale; if (syncSclInterpolate) { _interpolateScl = newScl; } else { transform.localScale = newScl; _oldScl = transform.localScale; } }
private void OnScaleDataReceived(Data_Scale 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.OnScaleDataReceived(data); } else { networkObject.transform.localScale = data.Scale; } }
/// <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); } } }