From 7849024b1e9f792d6f1059d81136493c91977664 Mon Sep 17 00:00:00 2001 From: Vyacheslav Denisov Date: Wed, 28 Jan 2026 20:18:07 +0200 Subject: [PATCH] fix: RemoveForces removing MoveRotation and MovePosition --- .../Runtime/Object/Prediction/PredictionRigidbody.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Assets/FishNet/Runtime/Object/Prediction/PredictionRigidbody.cs b/Assets/FishNet/Runtime/Object/Prediction/PredictionRigidbody.cs index b94a07d0..131e17d9 100644 --- a/Assets/FishNet/Runtime/Object/Prediction/PredictionRigidbody.cs +++ b/Assets/FishNet/Runtime/Object/Prediction/PredictionRigidbody.cs @@ -484,11 +484,12 @@ private void RemoveForces(bool nonAngular) if (_pendingForces.Count > 0) { ForceApplicationType velocityApplicationTypes = ForceApplicationType.AddRelativeForce | ForceApplicationType.AddForce | ForceApplicationType.AddExplosiveForce; + ForceApplicationType nonVelocityTypes = ForceApplicationType.MovePosition | ForceApplicationType.MoveRotation; List newDatas = CollectionCaches.RetrieveList(); foreach (EntryData item in _pendingForces) { - if (VelocityApplicationTypesContains(item.Type) == !nonAngular) + if (TypesContain(velocityApplicationTypes, item.Type) == !nonAngular || TypesContain(nonVelocityTypes, item.Type)) newDatas.Add(item); } // Add back to _pendingForces if changed. @@ -500,9 +501,9 @@ private void RemoveForces(bool nonAngular) } CollectionCaches.Store(newDatas); - bool VelocityApplicationTypesContains(ForceApplicationType apt) + static bool TypesContain(ForceApplicationType types, ForceApplicationType apt) { - return (velocityApplicationTypes & apt) == apt; + return (types & apt) == apt; } } }