make USGGloveTracker::GetInstance as flexible as possible
This commit is contained in:
@@ -310,7 +310,7 @@ void USGVirtualHandComponent::UninitializeComponent()
|
|||||||
{
|
{
|
||||||
Super::UninitializeComponent();
|
Super::UninitializeComponent();
|
||||||
|
|
||||||
const USGGloveTracker* GloveTracker{USGGloveTracker::GetInstance()};
|
const USGGloveTracker* GloveTracker{USGGloveTracker::GetInstance(this)};
|
||||||
USGHapticGlove* Glove{IsValid(GloveTracker) ? GloveTracker->GetGlove(IsRight()) : nullptr};
|
USGHapticGlove* Glove{IsValid(GloveTracker) ? GloveTracker->GetGlove(IsRight()) : nullptr};
|
||||||
if (IsValid(Glove) && Glove->IsConnected() && AutoStopsAllHapticsOnEndPlay())
|
if (IsValid(Glove) && Glove->IsConnected() && AutoStopsAllHapticsOnEndPlay())
|
||||||
{
|
{
|
||||||
@@ -329,7 +329,7 @@ void USGVirtualHandComponent::EndPlay(const EEndPlayReason::Type EndPlayReason)
|
|||||||
{
|
{
|
||||||
Super::EndPlay(EndPlayReason);
|
Super::EndPlay(EndPlayReason);
|
||||||
|
|
||||||
const USGGloveTracker* GloveTracker{USGGloveTracker::GetInstance()};
|
const USGGloveTracker* GloveTracker{USGGloveTracker::GetInstance(this)};
|
||||||
USGHapticGlove* Glove{IsValid(GloveTracker) ? GloveTracker->GetGlove(IsRight()) : nullptr};
|
USGHapticGlove* Glove{IsValid(GloveTracker) ? GloveTracker->GetGlove(IsRight()) : nullptr};
|
||||||
if (IsValid(Glove) && Glove->IsConnected() && AutoStopsAllHapticsOnEndPlay())
|
if (IsValid(Glove) && Glove->IsConnected() && AutoStopsAllHapticsOnEndPlay())
|
||||||
{
|
{
|
||||||
@@ -383,14 +383,14 @@ void USGVirtualHandComponent::EditorTick(
|
|||||||
|
|
||||||
bool USGVirtualHandComponent::IsGloveConnected() const
|
bool USGVirtualHandComponent::IsGloveConnected() const
|
||||||
{
|
{
|
||||||
const USGGloveTracker* GloveTracker{USGGloveTracker::GetInstance()};
|
const USGGloveTracker* GloveTracker{USGGloveTracker::GetInstance(this)};
|
||||||
const USGHapticGlove* Glove{IsValid(GloveTracker) ? GloveTracker->GetGlove(IsRight()) : nullptr};
|
const USGHapticGlove* Glove{IsValid(GloveTracker) ? GloveTracker->GetGlove(IsRight()) : nullptr};
|
||||||
return IsValid(Glove);
|
return IsValid(Glove);
|
||||||
}
|
}
|
||||||
|
|
||||||
USGHapticGlove* USGVirtualHandComponent::GetConnectedGlove() const
|
USGHapticGlove* USGVirtualHandComponent::GetConnectedGlove() const
|
||||||
{
|
{
|
||||||
const USGGloveTracker* GloveTracker{USGGloveTracker::GetInstance()};
|
const USGGloveTracker* GloveTracker{USGGloveTracker::GetInstance(this)};
|
||||||
USGHapticGlove* Glove{IsValid(GloveTracker) ? GloveTracker->GetGlove(IsRight()) : nullptr};
|
USGHapticGlove* Glove{IsValid(GloveTracker) ? GloveTracker->GetGlove(IsRight()) : nullptr};
|
||||||
return Glove;
|
return Glove;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,9 +94,9 @@ struct USGGloveTracker::FImpl
|
|||||||
void UpdateGloves() const;
|
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};
|
USGGloveTracker* Instance{IsValid(World) ? World->GetSubsystem<USGGloveTracker>() : nullptr};
|
||||||
return Instance;
|
return Instance;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ class SENSEGLOVETRACKING_API USGGloveTracker : public UWorldSubsystem
|
|||||||
GENERATED_BODY()
|
GENERATED_BODY()
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static USGGloveTracker* GetInstance();
|
static USGGloveTracker* GetInstance(const UObject* WorldContextObject);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct FImpl;
|
struct FImpl;
|
||||||
|
|||||||
+2
-2
@@ -38,9 +38,9 @@
|
|||||||
#include "SGCore/SGHapticGlove.h"
|
#include "SGCore/SGHapticGlove.h"
|
||||||
#include "SGTracking/SGGloveTracker.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)
|
USGHapticGlove* USGGloveTrackerKismetLibrary::GetGlove(const USGGloveTracker* GloveTracker, const bool bRight)
|
||||||
|
|||||||
+1
-1
@@ -50,7 +50,7 @@ class SENSEGLOVETRACKINGKISMET_API USGGloveTrackerKismetLibrary final : public U
|
|||||||
public:
|
public:
|
||||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Tracking | Glove Tracker",
|
UFUNCTION(BlueprintCallable, Category="SenseGlove | Tracking | Glove Tracker",
|
||||||
meta=(WorldContext="WorldContextObject"))
|
meta=(WorldContext="WorldContextObject"))
|
||||||
static USGGloveTracker* GetInstance();
|
static USGGloveTracker* GetInstance(UObject* WorldContextObject);
|
||||||
|
|
||||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Tracking | Glove Tracker")
|
UFUNCTION(BlueprintPure, Category="SenseGlove | Tracking | Glove Tracker")
|
||||||
static USGHapticGlove* GetGlove(const USGGloveTracker* GloveTracker, const bool bRight);
|
static USGHapticGlove* GetGlove(const USGGloveTracker* GloveTracker, const bool bRight);
|
||||||
|
|||||||
Reference in New Issue
Block a user