make USGGloveTracker::GetInstance as flexible as possible

This commit is contained in:
Mamadou Babaei
2024-08-16 18:01:38 +02:00
parent f044fa9f66
commit 2f23fffb73
5 changed files with 10 additions and 10 deletions
@@ -310,7 +310,7 @@ void USGVirtualHandComponent::UninitializeComponent()
{
Super::UninitializeComponent();
const USGGloveTracker* GloveTracker{USGGloveTracker::GetInstance()};
const USGGloveTracker* GloveTracker{USGGloveTracker::GetInstance(this)};
USGHapticGlove* Glove{IsValid(GloveTracker) ? GloveTracker->GetGlove(IsRight()) : nullptr};
if (IsValid(Glove) && Glove->IsConnected() && AutoStopsAllHapticsOnEndPlay())
{
@@ -329,7 +329,7 @@ void USGVirtualHandComponent::EndPlay(const EEndPlayReason::Type EndPlayReason)
{
Super::EndPlay(EndPlayReason);
const USGGloveTracker* GloveTracker{USGGloveTracker::GetInstance()};
const USGGloveTracker* GloveTracker{USGGloveTracker::GetInstance(this)};
USGHapticGlove* Glove{IsValid(GloveTracker) ? GloveTracker->GetGlove(IsRight()) : nullptr};
if (IsValid(Glove) && Glove->IsConnected() && AutoStopsAllHapticsOnEndPlay())
{
@@ -383,14 +383,14 @@ void USGVirtualHandComponent::EditorTick(
bool USGVirtualHandComponent::IsGloveConnected() const
{
const USGGloveTracker* GloveTracker{USGGloveTracker::GetInstance()};
const USGGloveTracker* GloveTracker{USGGloveTracker::GetInstance(this)};
const USGHapticGlove* Glove{IsValid(GloveTracker) ? GloveTracker->GetGlove(IsRight()) : nullptr};
return IsValid(Glove);
}
USGHapticGlove* USGVirtualHandComponent::GetConnectedGlove() const
{
const USGGloveTracker* GloveTracker{USGGloveTracker::GetInstance()};
const USGGloveTracker* GloveTracker{USGGloveTracker::GetInstance(this)};
USGHapticGlove* Glove{IsValid(GloveTracker) ? GloveTracker->GetGlove(IsRight()) : nullptr};
return Glove;
}
@@ -94,9 +94,9 @@ struct USGGloveTracker::FImpl
void UpdateGloves() const;
};
USGGloveTracker* USGGloveTracker::GetInstance()
USGGloveTracker* USGGloveTracker::GetInstance(const UObject* WorldContextObject = nullptr)
{
UWorld* World{FSGEngineUtils::GetWorld()};
const UWorld* World{WorldContextObject ? WorldContextObject->GetWorld() : FSGEngineUtils::GetWorld()};
USGGloveTracker* Instance{IsValid(World) ? World->GetSubsystem<USGGloveTracker>() : nullptr};
return Instance;
}
@@ -50,7 +50,7 @@ class SENSEGLOVETRACKING_API USGGloveTracker : public UWorldSubsystem
GENERATED_BODY()
public:
static USGGloveTracker* GetInstance();
static USGGloveTracker* GetInstance(const UObject* WorldContextObject);
private:
struct FImpl;
@@ -38,9 +38,9 @@
#include "SGCore/SGHapticGlove.h"
#include "SGTracking/SGGloveTracker.h"
USGGloveTracker* USGGloveTrackerKismetLibrary::GetInstance()
USGGloveTracker* USGGloveTrackerKismetLibrary::GetInstance(UObject* WorldContextObject)
{
return USGGloveTracker::GetInstance();
return USGGloveTracker::GetInstance(WorldContextObject);
}
USGHapticGlove* USGGloveTrackerKismetLibrary::GetGlove(const USGGloveTracker* GloveTracker, const bool bRight)
@@ -50,7 +50,7 @@ class SENSEGLOVETRACKINGKISMET_API USGGloveTrackerKismetLibrary final : public U
public:
UFUNCTION(BlueprintCallable, Category="SenseGlove | Tracking | Glove Tracker",
meta=(WorldContext="WorldContextObject"))
static USGGloveTracker* GetInstance();
static USGGloveTracker* GetInstance(UObject* WorldContextObject);
UFUNCTION(BlueprintPure, Category="SenseGlove | Tracking | Glove Tracker")
static USGHapticGlove* GetGlove(const USGGloveTracker* GloveTracker, const bool bRight);