From 7148f14b0d21db0b563a9f4a5d2ad047bc6dafa7 Mon Sep 17 00:00:00 2001 From: Jb win Date: Wed, 30 Apr 2025 21:36:36 +0700 Subject: [PATCH] FIX - Delegate could be in header only --- .../LuckyMujoco/Private/Actors/MujocoVolumeActor.cpp | 9 +-------- .../Source/LuckyMujoco/Public/Actors/MujocoVolumeActor.h | 7 +++++-- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/Plugins/LuckyMujoco/Source/LuckyMujoco/Private/Actors/MujocoVolumeActor.cpp b/Plugins/LuckyMujoco/Source/LuckyMujoco/Private/Actors/MujocoVolumeActor.cpp index 86f7d859..54e44206 100644 --- a/Plugins/LuckyMujoco/Source/LuckyMujoco/Private/Actors/MujocoVolumeActor.cpp +++ b/Plugins/LuckyMujoco/Source/LuckyMujoco/Private/Actors/MujocoVolumeActor.cpp @@ -109,13 +109,6 @@ template void AMujocoVolumeActor::AssignComponentsToArr } } -template -void AMujocoVolumeActor::BindPostPhysicDelegate(UserClass* Object, void(UserClass::* Func)(float)) -{ - PostPhysicUpdateDelegate.BindUObject(Object, Func); -} - - void AMujocoVolumeActor::InitializeMujoco() { InitializeMujocoScene_WithContactExclusion(TMap{}); @@ -417,7 +410,7 @@ void AMujocoVolumeActor::Tick(float DeltaTime) for (int32 SimStep = 0; SimStep < SimStepsPerGameFrame; ++SimStep) { mj_step(MujocoModel.Get(), MujocoData.Get()); - PostPhysicUpdateDelegate.ExecuteIfBound(MujocoData->time); + PostPhysicStepDelegate.ExecuteIfBound(MujocoData->time); } for (int32 i = 1; i < BodyComponents.Num(); ++i) diff --git a/Plugins/LuckyMujoco/Source/LuckyMujoco/Public/Actors/MujocoVolumeActor.h b/Plugins/LuckyMujoco/Source/LuckyMujoco/Public/Actors/MujocoVolumeActor.h index 19c91525..18190bf5 100644 --- a/Plugins/LuckyMujoco/Source/LuckyMujoco/Public/Actors/MujocoVolumeActor.h +++ b/Plugins/LuckyMujoco/Source/LuckyMujoco/Public/Actors/MujocoVolumeActor.h @@ -114,7 +114,7 @@ public: // ------- POST UPDATE ------- // --------------------------- private: - FPostPhysicUpdate PostPhysicUpdateDelegate; + FPostPhysicUpdate PostPhysicStepDelegate; public: /** * Register a delegate to be executed after mj_step, useful to fine control actuators @@ -122,7 +122,10 @@ public: * @param Func - The Function to call - takes a float as parameter which is the current simulation timestamp */ template - void BindPostPhysicDelegate(UserClass* Object, void (UserClass::*Func)(float)); + void BindPostPhysicStepDelegate(UserClass* Object, void (UserClass::*Func)(float)) + { + PostPhysicStepDelegate.BindUObject(Object, Func); + } // -------------------------