From 157cc185da6997910eeaf295219eaeaf0a755ed5 Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Sat, 13 Nov 2021 19:42:39 -0800 Subject: [PATCH] only update transform from host after receiving the transform, instead of every frame --- .../TransformSync/MeteorTransformSync.cs | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/QSB/MeteorSync/TransformSync/MeteorTransformSync.cs b/QSB/MeteorSync/TransformSync/MeteorTransformSync.cs index 31e4d26c..60df102d 100644 --- a/QSB/MeteorSync/TransformSync/MeteorTransformSync.cs +++ b/QSB/MeteorSync/TransformSync/MeteorTransformSync.cs @@ -3,7 +3,7 @@ using QSB.MeteorSync.WorldObjects; using QSB.Syncs.Unsectored.Rigidbodies; using QSB.Utility; using QSB.WorldSync; -using UnityEngine; +using QuantumUNET.Transport; namespace QSB.MeteorSync.TransformSync { @@ -40,18 +40,30 @@ namespace QSB.MeteorSync.TransformSync base.Init(); SetReferenceTransform(Locator._brittleHollow.transform); + } - DebugLog.DebugWrite($"{LogName} - init"); + + private bool _shouldUpdate; + + public override void DeserializeTransform(QNetworkReader reader, bool initialState) + { + base.DeserializeTransform(reader, initialState); + _shouldUpdate = true; } protected override bool UpdateTransform() { - // DebugLog.DebugWrite($"{LogName} - {Time.time - _lastClientSendTime}"); - if (Time.time - _lastClientSendTime > GetNetworkSendInterval()) + if (HasAuthority) { return base.UpdateTransform(); } - return false; + + if (!_shouldUpdate) + { + return false; + } + _shouldUpdate = false; + return base.UpdateTransform(); }