make USGGloveTracker::GetInstance as flexible as possible
This commit is contained in:
@@ -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;
|
||||
|
||||
+2
-2
@@ -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)
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user