integrate the touch component and colliders and rename the grab ones

This commit is contained in:
Mamadou Babaei
2023-05-19 18:13:39 +02:00
parent ee7002413a
commit b17375a8e4
12 changed files with 985 additions and 270 deletions
@@ -210,11 +210,19 @@ USGVirtualHandComponent::USGVirtualHandComponent(const FObjectInitializer& Objec
bRight = true;
DefaultFingertipsColliderSize = FVector{0.04f, 0.04f, 0.04f};
DefaultFingertipsGrabColliderSize = FVector{0.04f, 0.04f, 0.04f};
ThumbFingertipSocketName = FName(TEXT("ThumbFingertip"));
IndexFingertipSocketName = FName(TEXT("ThumbFingertip"));
MiddleFingertipSocketName = FName(TEXT("MiddleFingertip"));
ThumbFingertipGrabSocketName = FName(TEXT("ThumbFingertip"));
IndexFingertipGrabSocketName = FName(TEXT("IndexFingertip"));
MiddleFingertipGrabSocketName = FName(TEXT("MiddleFingertip"));
DefaultFingertipsTouchColliderSize = FVector{0.04f, 0.04f, 0.04f};
ThumbFingertipTouchSocketName = FName(TEXT("ThumbFingertip"));
IndexFingertipTouchSocketName = FName(TEXT("IndexFingertip"));
MiddleFingertipTouchSocketName = FName(TEXT("MiddleFingertip"));
RingFingertipTouchSocketName = FName(TEXT("RingFingertip"));
PinkyFingertipTouchSocketName = FName(TEXT("PinkyFingertip"));
bHiddenInGameIfNoGloveDetected = false;
@@ -100,62 +100,157 @@ ASGPawn::ASGPawn(const FObjectInitializer& ObjectInitializer)
false, nullptr, ETeleportType::None);
HandLeft->SetWristTracker(WristTrackerLeft);
LeftThumbFingertipCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("LeftThumbFingertipCollider"));
LeftThumbFingertipCollider->SetRelativeScale3D(HandLeft->GetDefaultFingertipsColliderSize());
LeftThumbFingertipCollider->SetupAttachment(HandLeft, HandLeft->GetThumbFingertipSocketName());
LeftThumbFingertipCollider->SetCastShadow(false);
LeftThumbFingertipCollider->bCastDynamicShadow = false;
LeftThumbFingertipCollider->SetReceivesDecals(true);
LeftThumbFingertipCollider->SetCanEverAffectNavigation(false);
LeftThumbFingertipCollider->SetCollisionObjectType(ECC_WorldDynamic);
LeftThumbFingertipCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
LeftThumbFingertipCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
LeftThumbFingertipCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
LeftThumbFingertipCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
LeftThumbFingertipCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
LeftThumbFingertipCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
LeftThumbFingertipCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
LeftThumbFingertipCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
LeftThumbFingertipCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
LeftThumbFingertipGrabCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("LeftThumbFingertipGrabCollider"));
LeftThumbFingertipGrabCollider->SetRelativeScale3D(HandLeft->GetDefaultFingertipsGrabColliderSize());
LeftThumbFingertipGrabCollider->SetupAttachment(HandLeft, HandLeft->GetThumbFingertipGrabSocketName());
LeftThumbFingertipGrabCollider->SetCastShadow(false);
LeftThumbFingertipGrabCollider->bCastDynamicShadow = false;
LeftThumbFingertipGrabCollider->SetReceivesDecals(true);
LeftThumbFingertipGrabCollider->SetCanEverAffectNavigation(false);
LeftThumbFingertipGrabCollider->SetCollisionObjectType(ECC_WorldDynamic);
LeftThumbFingertipGrabCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
LeftThumbFingertipGrabCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
LeftThumbFingertipGrabCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
LeftThumbFingertipGrabCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
LeftThumbFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
LeftThumbFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
LeftThumbFingertipGrabCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
LeftThumbFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
LeftThumbFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
LeftIndexFingertipCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("LeftIndexFingertipCollider"));
LeftIndexFingertipCollider->SetRelativeScale3D(HandLeft->GetDefaultFingertipsColliderSize());
LeftIndexFingertipCollider->SetupAttachment(HandLeft, HandLeft->GetIndexFingertipSocketName());
LeftIndexFingertipCollider->SetCastShadow(false);
LeftIndexFingertipCollider->bCastDynamicShadow = false;
LeftIndexFingertipCollider->SetReceivesDecals(true);
LeftIndexFingertipCollider->SetCanEverAffectNavigation(false);
LeftIndexFingertipCollider->SetCollisionObjectType(ECC_WorldDynamic);
LeftIndexFingertipCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
LeftIndexFingertipCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
LeftIndexFingertipCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
LeftIndexFingertipCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
LeftIndexFingertipCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
LeftIndexFingertipCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
LeftIndexFingertipCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
LeftIndexFingertipCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
LeftIndexFingertipCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
LeftIndexFingertipGrabCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("LeftIndexFingertipGrabCollider"));
LeftIndexFingertipGrabCollider->SetRelativeScale3D(HandLeft->GetDefaultFingertipsGrabColliderSize());
LeftIndexFingertipGrabCollider->SetupAttachment(HandLeft, HandLeft->GetIndexFingertipGrabSocketName());
LeftIndexFingertipGrabCollider->SetCastShadow(false);
LeftIndexFingertipGrabCollider->bCastDynamicShadow = false;
LeftIndexFingertipGrabCollider->SetReceivesDecals(true);
LeftIndexFingertipGrabCollider->SetCanEverAffectNavigation(false);
LeftIndexFingertipGrabCollider->SetCollisionObjectType(ECC_WorldDynamic);
LeftIndexFingertipGrabCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
LeftIndexFingertipGrabCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
LeftIndexFingertipGrabCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
LeftIndexFingertipGrabCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
LeftIndexFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
LeftIndexFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
LeftIndexFingertipGrabCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
LeftIndexFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
LeftIndexFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
LeftMiddleFingertipCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("LeftMiddleFingertipCollider"));
LeftMiddleFingertipCollider->SetRelativeScale3D(HandLeft->GetDefaultFingertipsColliderSize());
LeftMiddleFingertipCollider->SetupAttachment(HandLeft, HandLeft->GetMiddleFingertipSocketName());
LeftMiddleFingertipCollider->SetCastShadow(false);
LeftMiddleFingertipCollider->bCastDynamicShadow = false;
LeftMiddleFingertipCollider->SetReceivesDecals(true);
LeftMiddleFingertipCollider->SetCanEverAffectNavigation(false);
LeftMiddleFingertipCollider->SetCollisionObjectType(ECC_WorldDynamic);
LeftMiddleFingertipCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
LeftMiddleFingertipCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
LeftMiddleFingertipCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
LeftMiddleFingertipCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
LeftMiddleFingertipCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
LeftMiddleFingertipCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
LeftMiddleFingertipCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
LeftMiddleFingertipCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
LeftMiddleFingertipCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
LeftMiddleFingertipGrabCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("LeftMiddleFingertipGrabCollider"));
LeftMiddleFingertipGrabCollider->SetRelativeScale3D(HandLeft->GetDefaultFingertipsGrabColliderSize());
LeftMiddleFingertipGrabCollider->SetupAttachment(HandLeft, HandLeft->GetMiddleFingertipGrabSocketName());
LeftMiddleFingertipGrabCollider->SetCastShadow(false);
LeftMiddleFingertipGrabCollider->bCastDynamicShadow = false;
LeftMiddleFingertipGrabCollider->SetReceivesDecals(true);
LeftMiddleFingertipGrabCollider->SetCanEverAffectNavigation(false);
LeftMiddleFingertipGrabCollider->SetCollisionObjectType(ECC_WorldDynamic);
LeftMiddleFingertipGrabCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
LeftMiddleFingertipGrabCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
LeftMiddleFingertipGrabCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
LeftMiddleFingertipGrabCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
LeftMiddleFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
LeftMiddleFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
LeftMiddleFingertipGrabCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
LeftMiddleFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
LeftMiddleFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
LeftThumbFingertipTouchCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("LeftThumbFingertipTouchCollider"));
LeftThumbFingertipTouchCollider->SetRelativeScale3D(HandLeft->GetDefaultFingertipsTouchColliderSize());
LeftThumbFingertipTouchCollider->SetupAttachment(HandLeft, HandLeft->GetThumbFingertipTouchSocketName());
LeftThumbFingertipTouchCollider->SetCastShadow(false);
LeftThumbFingertipTouchCollider->bCastDynamicShadow = false;
LeftThumbFingertipTouchCollider->SetReceivesDecals(true);
LeftThumbFingertipTouchCollider->SetCanEverAffectNavigation(false);
LeftThumbFingertipTouchCollider->SetCollisionObjectType(ECC_WorldDynamic);
LeftThumbFingertipTouchCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
LeftThumbFingertipTouchCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
LeftThumbFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
LeftThumbFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
LeftThumbFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
LeftThumbFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
LeftThumbFingertipTouchCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
LeftThumbFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
LeftThumbFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
LeftIndexFingertipTouchCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("LeftIndexFingertipTouchCollider"));
LeftIndexFingertipTouchCollider->SetRelativeScale3D(HandLeft->GetDefaultFingertipsTouchColliderSize());
LeftIndexFingertipTouchCollider->SetupAttachment(HandLeft, HandLeft->GetIndexFingertipTouchSocketName());
LeftIndexFingertipTouchCollider->SetCastShadow(false);
LeftIndexFingertipTouchCollider->bCastDynamicShadow = false;
LeftIndexFingertipTouchCollider->SetReceivesDecals(true);
LeftIndexFingertipTouchCollider->SetCanEverAffectNavigation(false);
LeftIndexFingertipTouchCollider->SetCollisionObjectType(ECC_WorldDynamic);
LeftIndexFingertipTouchCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
LeftIndexFingertipTouchCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
LeftIndexFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
LeftIndexFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
LeftIndexFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
LeftIndexFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
LeftIndexFingertipTouchCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
LeftIndexFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
LeftIndexFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
LeftMiddleFingertipTouchCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("LeftMiddleFingertipTouchCollider"));
LeftMiddleFingertipTouchCollider->SetRelativeScale3D(HandLeft->GetDefaultFingertipsTouchColliderSize());
LeftMiddleFingertipTouchCollider->SetupAttachment(HandLeft, HandLeft->GetMiddleFingertipTouchSocketName());
LeftMiddleFingertipTouchCollider->SetCastShadow(false);
LeftMiddleFingertipTouchCollider->bCastDynamicShadow = false;
LeftMiddleFingertipTouchCollider->SetReceivesDecals(true);
LeftMiddleFingertipTouchCollider->SetCanEverAffectNavigation(false);
LeftMiddleFingertipTouchCollider->SetCollisionObjectType(ECC_WorldDynamic);
LeftMiddleFingertipTouchCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
LeftMiddleFingertipTouchCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
LeftMiddleFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
LeftMiddleFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
LeftMiddleFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
LeftMiddleFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
LeftMiddleFingertipTouchCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
LeftMiddleFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
LeftMiddleFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
LeftRingFingertipTouchCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("LeftRingFingertipTouchCollider"));
LeftRingFingertipTouchCollider->SetRelativeScale3D(HandLeft->GetDefaultFingertipsTouchColliderSize());
LeftRingFingertipTouchCollider->SetupAttachment(HandLeft, HandLeft->GetRingFingertipTouchSocketName());
LeftRingFingertipTouchCollider->SetCastShadow(false);
LeftRingFingertipTouchCollider->bCastDynamicShadow = false;
LeftRingFingertipTouchCollider->SetReceivesDecals(true);
LeftRingFingertipTouchCollider->SetCanEverAffectNavigation(false);
LeftRingFingertipTouchCollider->SetCollisionObjectType(ECC_WorldDynamic);
LeftRingFingertipTouchCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
LeftRingFingertipTouchCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
LeftRingFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
LeftRingFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
LeftRingFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
LeftRingFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
LeftRingFingertipTouchCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
LeftRingFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
LeftRingFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
LeftPinkyFingertipTouchCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("LeftPinkyFingertipTouchCollider"));
LeftPinkyFingertipTouchCollider->SetRelativeScale3D(HandLeft->GetDefaultFingertipsTouchColliderSize());
LeftPinkyFingertipTouchCollider->SetupAttachment(HandLeft, HandLeft->GetPinkyFingertipTouchSocketName());
LeftPinkyFingertipTouchCollider->SetCastShadow(false);
LeftPinkyFingertipTouchCollider->bCastDynamicShadow = false;
LeftPinkyFingertipTouchCollider->SetReceivesDecals(true);
LeftPinkyFingertipTouchCollider->SetCanEverAffectNavigation(false);
LeftPinkyFingertipTouchCollider->SetCollisionObjectType(ECC_WorldDynamic);
LeftPinkyFingertipTouchCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
LeftPinkyFingertipTouchCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
LeftPinkyFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
LeftPinkyFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
LeftPinkyFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
LeftPinkyFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
LeftPinkyFingertipTouchCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
LeftPinkyFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
LeftPinkyFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
WristTrackerRight = ObjectInitializer.CreateDefaultSubobject<USGWristTrackerComponent>(
this, TEXT("WristTrackerRight"));
@@ -167,67 +262,162 @@ ASGPawn::ASGPawn(const FObjectInitializer& ObjectInitializer)
HandRight->SetRight(true);
HandRight->SetHiddenIfNoGloveDetected(true);
HandRight->SetRelativeRotation(FRotator{0.0f, -90.0f, 0.0f},
false, nullptr, ETeleportType::None);
false, nullptr, ETeleportType::None);
HandRight->SetRelativeLocation(FVector{30.0f, 20.0f, -10.0f},
false, nullptr, ETeleportType::None);
HandRight->SetWristTracker(WristTrackerRight);
RightThumbFingertipCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("RightThumbFingertipCollider"));
RightThumbFingertipCollider->SetRelativeScale3D(HandLeft->GetDefaultFingertipsColliderSize());
RightThumbFingertipCollider->SetupAttachment(HandRight, HandRight->GetThumbFingertipSocketName());
RightThumbFingertipCollider->SetCastShadow(false);
RightThumbFingertipCollider->bCastDynamicShadow = false;
RightThumbFingertipCollider->SetReceivesDecals(true);
RightThumbFingertipCollider->SetCanEverAffectNavigation(false);
RightThumbFingertipCollider->SetCollisionObjectType(ECC_WorldDynamic);
RightThumbFingertipCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
RightThumbFingertipCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
RightThumbFingertipCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
RightThumbFingertipCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
RightThumbFingertipCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
RightThumbFingertipCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
RightThumbFingertipCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
RightThumbFingertipCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
RightThumbFingertipCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
RightThumbFingertipGrabCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("RightThumbFingertipGrabCollider"));
RightThumbFingertipGrabCollider->SetRelativeScale3D(HandLeft->GetDefaultFingertipsGrabColliderSize());
RightThumbFingertipGrabCollider->SetupAttachment(HandRight, HandRight->GetThumbFingertipGrabSocketName());
RightThumbFingertipGrabCollider->SetCastShadow(false);
RightThumbFingertipGrabCollider->bCastDynamicShadow = false;
RightThumbFingertipGrabCollider->SetReceivesDecals(true);
RightThumbFingertipGrabCollider->SetCanEverAffectNavigation(false);
RightThumbFingertipGrabCollider->SetCollisionObjectType(ECC_WorldDynamic);
RightThumbFingertipGrabCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
RightThumbFingertipGrabCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
RightThumbFingertipGrabCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
RightThumbFingertipGrabCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
RightThumbFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
RightThumbFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
RightThumbFingertipGrabCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
RightThumbFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
RightThumbFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
RightIndexFingertipCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("RightIndexFingertipCollider"));
RightIndexFingertipCollider->SetRelativeScale3D(HandLeft->GetDefaultFingertipsColliderSize());
RightIndexFingertipCollider->SetupAttachment(HandRight, HandRight->GetIndexFingertipSocketName());
RightIndexFingertipCollider->SetCastShadow(false);
RightIndexFingertipCollider->bCastDynamicShadow = false;
RightIndexFingertipCollider->SetReceivesDecals(true);
RightIndexFingertipCollider->SetCanEverAffectNavigation(false);
RightIndexFingertipCollider->SetCollisionObjectType(ECC_WorldDynamic);
RightIndexFingertipCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
RightIndexFingertipCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
RightIndexFingertipCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
RightIndexFingertipCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
RightIndexFingertipCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
RightIndexFingertipCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
RightIndexFingertipCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
RightIndexFingertipCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
RightIndexFingertipCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
RightIndexFingertipGrabCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("RightIndexFingertipGrabCollider"));
RightIndexFingertipGrabCollider->SetRelativeScale3D(HandLeft->GetDefaultFingertipsGrabColliderSize());
RightIndexFingertipGrabCollider->SetupAttachment(HandRight, HandRight->GetIndexFingertipGrabSocketName());
RightIndexFingertipGrabCollider->SetCastShadow(false);
RightIndexFingertipGrabCollider->bCastDynamicShadow = false;
RightIndexFingertipGrabCollider->SetReceivesDecals(true);
RightIndexFingertipGrabCollider->SetCanEverAffectNavigation(false);
RightIndexFingertipGrabCollider->SetCollisionObjectType(ECC_WorldDynamic);
RightIndexFingertipGrabCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
RightIndexFingertipGrabCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
RightIndexFingertipGrabCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
RightIndexFingertipGrabCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
RightIndexFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
RightIndexFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
RightIndexFingertipGrabCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
RightIndexFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
RightIndexFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
RightMiddleFingertipCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("RightMiddleFingertipCollider"));
RightMiddleFingertipCollider->SetRelativeScale3D(HandLeft->GetDefaultFingertipsColliderSize());
RightMiddleFingertipCollider->SetupAttachment(HandRight, HandRight->GetMiddleFingertipSocketName());
RightMiddleFingertipCollider->SetCastShadow(false);
RightMiddleFingertipCollider->bCastDynamicShadow = false;
RightMiddleFingertipCollider->SetReceivesDecals(true);
RightMiddleFingertipCollider->SetCanEverAffectNavigation(false);
RightMiddleFingertipCollider->SetCollisionObjectType(ECC_WorldDynamic);
RightMiddleFingertipCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
RightMiddleFingertipCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
RightMiddleFingertipCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
RightMiddleFingertipCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
RightMiddleFingertipCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
RightMiddleFingertipCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
RightMiddleFingertipCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
RightMiddleFingertipCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
RightMiddleFingertipCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
RightMiddleFingertipGrabCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("RightMiddleFingertipGrabCollider"));
RightMiddleFingertipGrabCollider->SetRelativeScale3D(HandLeft->GetDefaultFingertipsGrabColliderSize());
RightMiddleFingertipGrabCollider->SetupAttachment(HandRight, HandRight->GetMiddleFingertipGrabSocketName());
RightMiddleFingertipGrabCollider->SetCastShadow(false);
RightMiddleFingertipGrabCollider->bCastDynamicShadow = false;
RightMiddleFingertipGrabCollider->SetReceivesDecals(true);
RightMiddleFingertipGrabCollider->SetCanEverAffectNavigation(false);
RightMiddleFingertipGrabCollider->SetCollisionObjectType(ECC_WorldDynamic);
RightMiddleFingertipGrabCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
RightMiddleFingertipGrabCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
RightMiddleFingertipGrabCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
RightMiddleFingertipGrabCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
RightMiddleFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
RightMiddleFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
RightMiddleFingertipGrabCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
RightMiddleFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
RightMiddleFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
RightThumbFingertipTouchCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("RightThumbFingertipTouchCollider"));
RightThumbFingertipTouchCollider->SetRelativeScale3D(HandRight->GetDefaultFingertipsTouchColliderSize());
RightThumbFingertipTouchCollider->SetupAttachment(HandRight, HandRight->GetThumbFingertipTouchSocketName());
RightThumbFingertipTouchCollider->SetCastShadow(false);
RightThumbFingertipTouchCollider->bCastDynamicShadow = false;
RightThumbFingertipTouchCollider->SetReceivesDecals(true);
RightThumbFingertipTouchCollider->SetCanEverAffectNavigation(false);
RightThumbFingertipTouchCollider->SetCollisionObjectType(ECC_WorldDynamic);
RightThumbFingertipTouchCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
RightThumbFingertipTouchCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
RightThumbFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
RightThumbFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
RightThumbFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
RightThumbFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
RightThumbFingertipTouchCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
RightThumbFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
RightThumbFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
RightIndexFingertipTouchCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("RightIndexFingertipTouchCollider"));
RightIndexFingertipTouchCollider->SetRelativeScale3D(HandRight->GetDefaultFingertipsTouchColliderSize());
RightIndexFingertipTouchCollider->SetupAttachment(HandRight, HandRight->GetIndexFingertipTouchSocketName());
RightIndexFingertipTouchCollider->SetCastShadow(false);
RightIndexFingertipTouchCollider->bCastDynamicShadow = false;
RightIndexFingertipTouchCollider->SetReceivesDecals(true);
RightIndexFingertipTouchCollider->SetCanEverAffectNavigation(false);
RightIndexFingertipTouchCollider->SetCollisionObjectType(ECC_WorldDynamic);
RightIndexFingertipTouchCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
RightIndexFingertipTouchCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
RightIndexFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
RightIndexFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
RightIndexFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
RightIndexFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
RightIndexFingertipTouchCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
RightIndexFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
RightIndexFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
RightMiddleFingertipTouchCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("RightMiddleFingertipTouchCollider"));
RightMiddleFingertipTouchCollider->SetRelativeScale3D(HandRight->GetDefaultFingertipsTouchColliderSize());
RightMiddleFingertipTouchCollider->SetupAttachment(HandRight, HandRight->GetMiddleFingertipTouchSocketName());
RightMiddleFingertipTouchCollider->SetCastShadow(false);
RightMiddleFingertipTouchCollider->bCastDynamicShadow = false;
RightMiddleFingertipTouchCollider->SetReceivesDecals(true);
RightMiddleFingertipTouchCollider->SetCanEverAffectNavigation(false);
RightMiddleFingertipTouchCollider->SetCollisionObjectType(ECC_WorldDynamic);
RightMiddleFingertipTouchCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
RightMiddleFingertipTouchCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
RightMiddleFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
RightMiddleFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
RightMiddleFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
RightMiddleFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
RightMiddleFingertipTouchCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
RightMiddleFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
RightMiddleFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
RightRingFingertipTouchCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("RightRingFingertipTouchCollider"));
RightRingFingertipTouchCollider->SetRelativeScale3D(HandRight->GetDefaultFingertipsTouchColliderSize());
RightRingFingertipTouchCollider->SetupAttachment(HandRight, HandRight->GetRingFingertipTouchSocketName());
RightRingFingertipTouchCollider->SetCastShadow(false);
RightRingFingertipTouchCollider->bCastDynamicShadow = false;
RightRingFingertipTouchCollider->SetReceivesDecals(true);
RightRingFingertipTouchCollider->SetCanEverAffectNavigation(false);
RightRingFingertipTouchCollider->SetCollisionObjectType(ECC_WorldDynamic);
RightRingFingertipTouchCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
RightRingFingertipTouchCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
RightRingFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
RightRingFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
RightRingFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
RightRingFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
RightRingFingertipTouchCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
RightRingFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
RightRingFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
RightPinkyFingertipTouchCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("RightPinkyFingertipTouchCollider"));
RightPinkyFingertipTouchCollider->SetRelativeScale3D(HandRight->GetDefaultFingertipsTouchColliderSize());
RightPinkyFingertipTouchCollider->SetupAttachment(HandRight, HandRight->GetPinkyFingertipTouchSocketName());
RightPinkyFingertipTouchCollider->SetCastShadow(false);
RightPinkyFingertipTouchCollider->bCastDynamicShadow = false;
RightPinkyFingertipTouchCollider->SetReceivesDecals(true);
RightPinkyFingertipTouchCollider->SetCanEverAffectNavigation(false);
RightPinkyFingertipTouchCollider->SetCollisionObjectType(ECC_WorldDynamic);
RightPinkyFingertipTouchCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
RightPinkyFingertipTouchCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
RightPinkyFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
RightPinkyFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
RightPinkyFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
RightPinkyFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
RightPinkyFingertipTouchCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
RightPinkyFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
RightPinkyFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
}
void ASGPawn::BeginPlay()
@@ -81,62 +81,157 @@ ASGVirtualHandActor::ASGVirtualHandActor(const FObjectInitializer& ObjectInitial
VirtualHand->SetRelativeRotation(FRotator{0.0f, -90.0f, 0.0f},
false, nullptr, ETeleportType::None);
ThumbFingertipCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("ThumbFingertipCollider"));
ThumbFingertipCollider->SetupAttachment(VirtualHand, VirtualHand->GetThumbFingertipSocketName());
ThumbFingertipCollider->SetRelativeScale3D(VirtualHand->GetDefaultFingertipsColliderSize());
ThumbFingertipCollider->SetCastShadow(false);
ThumbFingertipCollider->bCastDynamicShadow = false;
ThumbFingertipCollider->SetReceivesDecals(true);
ThumbFingertipCollider->SetCanEverAffectNavigation(false);
ThumbFingertipCollider->SetCollisionObjectType(ECC_WorldDynamic);
ThumbFingertipCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
ThumbFingertipCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
ThumbFingertipCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
ThumbFingertipCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
ThumbFingertipCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
ThumbFingertipCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
ThumbFingertipCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
ThumbFingertipCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
ThumbFingertipCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
ThumbFingertipGrabCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("ThumbFingertipGrabCollider"));
ThumbFingertipGrabCollider->SetupAttachment(VirtualHand, VirtualHand->GetThumbFingertipGrabSocketName());
ThumbFingertipGrabCollider->SetRelativeScale3D(VirtualHand->GetDefaultFingertipsGrabColliderSize());
ThumbFingertipGrabCollider->SetCastShadow(false);
ThumbFingertipGrabCollider->bCastDynamicShadow = false;
ThumbFingertipGrabCollider->SetReceivesDecals(true);
ThumbFingertipGrabCollider->SetCanEverAffectNavigation(false);
ThumbFingertipGrabCollider->SetCollisionObjectType(ECC_WorldDynamic);
ThumbFingertipGrabCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
ThumbFingertipGrabCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
ThumbFingertipGrabCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
ThumbFingertipGrabCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
ThumbFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
ThumbFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
ThumbFingertipGrabCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
ThumbFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
ThumbFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
IndexFingertipCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("IndexFingertipCollider"));
IndexFingertipCollider->SetRelativeScale3D(VirtualHand->GetDefaultFingertipsColliderSize());
IndexFingertipCollider->SetupAttachment(VirtualHand, VirtualHand->GetIndexFingertipSocketName());
IndexFingertipCollider->SetCastShadow(false);
IndexFingertipCollider->bCastDynamicShadow = false;
IndexFingertipCollider->SetReceivesDecals(true);
IndexFingertipCollider->SetCanEverAffectNavigation(false);
IndexFingertipCollider->SetCollisionObjectType(ECC_WorldDynamic);
IndexFingertipCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
IndexFingertipCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
IndexFingertipCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
IndexFingertipCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
IndexFingertipCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
IndexFingertipCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
IndexFingertipCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
IndexFingertipCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
IndexFingertipCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
IndexFingertipGrabCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("IndexFingertipGrabCollider"));
IndexFingertipGrabCollider->SetRelativeScale3D(VirtualHand->GetDefaultFingertipsGrabColliderSize());
IndexFingertipGrabCollider->SetupAttachment(VirtualHand, VirtualHand->GetIndexFingertipGrabSocketName());
IndexFingertipGrabCollider->SetCastShadow(false);
IndexFingertipGrabCollider->bCastDynamicShadow = false;
IndexFingertipGrabCollider->SetReceivesDecals(true);
IndexFingertipGrabCollider->SetCanEverAffectNavigation(false);
IndexFingertipGrabCollider->SetCollisionObjectType(ECC_WorldDynamic);
IndexFingertipGrabCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
IndexFingertipGrabCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
IndexFingertipGrabCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
IndexFingertipGrabCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
IndexFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
IndexFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
IndexFingertipGrabCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
IndexFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
IndexFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
MiddleFingertipCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("MiddleFingertipCollider"));
MiddleFingertipCollider->SetRelativeScale3D(VirtualHand->GetDefaultFingertipsColliderSize());
MiddleFingertipCollider->SetupAttachment(VirtualHand, VirtualHand->GetMiddleFingertipSocketName());
MiddleFingertipCollider->SetCastShadow(false);
MiddleFingertipCollider->bCastDynamicShadow = false;
MiddleFingertipCollider->SetReceivesDecals(true);
MiddleFingertipCollider->SetCanEverAffectNavigation(false);
MiddleFingertipCollider->SetCollisionObjectType(ECC_WorldDynamic);
MiddleFingertipCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
MiddleFingertipCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
MiddleFingertipCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
MiddleFingertipCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
MiddleFingertipCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
MiddleFingertipCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
MiddleFingertipCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
MiddleFingertipCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
MiddleFingertipCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
MiddleFingertipGrabCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("MiddleFingertipGrabCollider"));
MiddleFingertipGrabCollider->SetRelativeScale3D(VirtualHand->GetDefaultFingertipsGrabColliderSize());
MiddleFingertipGrabCollider->SetupAttachment(VirtualHand, VirtualHand->GetMiddleFingertipGrabSocketName());
MiddleFingertipGrabCollider->SetCastShadow(false);
MiddleFingertipGrabCollider->bCastDynamicShadow = false;
MiddleFingertipGrabCollider->SetReceivesDecals(true);
MiddleFingertipGrabCollider->SetCanEverAffectNavigation(false);
MiddleFingertipGrabCollider->SetCollisionObjectType(ECC_WorldDynamic);
MiddleFingertipGrabCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
MiddleFingertipGrabCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
MiddleFingertipGrabCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
MiddleFingertipGrabCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
MiddleFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
MiddleFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
MiddleFingertipGrabCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
MiddleFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
MiddleFingertipGrabCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
ThumbFingertipTouchCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("ThumbFingertipTouchCollider"));
ThumbFingertipTouchCollider->SetupAttachment(VirtualHand, VirtualHand->GetThumbFingertipTouchSocketName());
ThumbFingertipTouchCollider->SetRelativeScale3D(VirtualHand->GetDefaultFingertipsTouchColliderSize());
ThumbFingertipTouchCollider->SetCastShadow(false);
ThumbFingertipTouchCollider->bCastDynamicShadow = false;
ThumbFingertipTouchCollider->SetReceivesDecals(true);
ThumbFingertipTouchCollider->SetCanEverAffectNavigation(false);
ThumbFingertipTouchCollider->SetCollisionObjectType(ECC_WorldDynamic);
ThumbFingertipTouchCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
ThumbFingertipTouchCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
ThumbFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
ThumbFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
ThumbFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
ThumbFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
ThumbFingertipTouchCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
ThumbFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
ThumbFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
IndexFingertipTouchCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("IndexFingertipTouchCollider"));
IndexFingertipTouchCollider->SetRelativeScale3D(VirtualHand->GetDefaultFingertipsTouchColliderSize());
IndexFingertipTouchCollider->SetupAttachment(VirtualHand, VirtualHand->GetIndexFingertipTouchSocketName());
IndexFingertipTouchCollider->SetCastShadow(false);
IndexFingertipTouchCollider->bCastDynamicShadow = false;
IndexFingertipTouchCollider->SetReceivesDecals(true);
IndexFingertipTouchCollider->SetCanEverAffectNavigation(false);
IndexFingertipTouchCollider->SetCollisionObjectType(ECC_WorldDynamic);
IndexFingertipTouchCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
IndexFingertipTouchCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
IndexFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
IndexFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
IndexFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
IndexFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
IndexFingertipTouchCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
IndexFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
IndexFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
MiddleFingertipTouchCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("MiddleFingertipTouchCollider"));
MiddleFingertipTouchCollider->SetRelativeScale3D(VirtualHand->GetDefaultFingertipsTouchColliderSize());
MiddleFingertipTouchCollider->SetupAttachment(VirtualHand, VirtualHand->GetMiddleFingertipTouchSocketName());
MiddleFingertipTouchCollider->SetCastShadow(false);
MiddleFingertipTouchCollider->bCastDynamicShadow = false;
MiddleFingertipTouchCollider->SetReceivesDecals(true);
MiddleFingertipTouchCollider->SetCanEverAffectNavigation(false);
MiddleFingertipTouchCollider->SetCollisionObjectType(ECC_WorldDynamic);
MiddleFingertipTouchCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
MiddleFingertipTouchCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
MiddleFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
MiddleFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
MiddleFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
MiddleFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
MiddleFingertipTouchCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
MiddleFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
MiddleFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
RingFingertipTouchCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("RingFingertipTouchCollider"));
RingFingertipTouchCollider->SetRelativeScale3D(VirtualHand->GetDefaultFingertipsTouchColliderSize());
RingFingertipTouchCollider->SetupAttachment(VirtualHand, VirtualHand->GetRingFingertipTouchSocketName());
RingFingertipTouchCollider->SetCastShadow(false);
RingFingertipTouchCollider->bCastDynamicShadow = false;
RingFingertipTouchCollider->SetReceivesDecals(true);
RingFingertipTouchCollider->SetCanEverAffectNavigation(false);
RingFingertipTouchCollider->SetCollisionObjectType(ECC_WorldDynamic);
RingFingertipTouchCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
RingFingertipTouchCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
RingFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
RingFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
RingFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
RingFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
RingFingertipTouchCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
RingFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
RingFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
PinkyFingertipTouchCollider = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(
this, TEXT("PinkyFingertipTouchCollider"));
PinkyFingertipTouchCollider->SetRelativeScale3D(VirtualHand->GetDefaultFingertipsTouchColliderSize());
PinkyFingertipTouchCollider->SetupAttachment(VirtualHand, VirtualHand->GetPinkyFingertipTouchSocketName());
PinkyFingertipTouchCollider->SetCastShadow(false);
PinkyFingertipTouchCollider->bCastDynamicShadow = false;
PinkyFingertipTouchCollider->SetReceivesDecals(true);
PinkyFingertipTouchCollider->SetCanEverAffectNavigation(false);
PinkyFingertipTouchCollider->SetCollisionObjectType(ECC_WorldDynamic);
PinkyFingertipTouchCollider->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
PinkyFingertipTouchCollider->SetCollisionResponseToAllChannels(ECR_Overlap);
PinkyFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Overlap);
PinkyFingertipTouchCollider->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Overlap);
PinkyFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
PinkyFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Visibility, ECR_Overlap);
PinkyFingertipTouchCollider->SetCollisionResponseToChannel(ECC_PhysicsBody, ECR_Overlap);
PinkyFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Vehicle, ECR_Overlap);
PinkyFingertipTouchCollider->SetCollisionResponseToChannel(ECC_Destructible, ECR_Overlap);
WristTracker = CreateDefaultSubobject<USGWristTrackerComponent>(TEXT("WristTracker"));
WristTracker->SetupAttachment(RootComponent);
@@ -84,17 +84,35 @@ private:
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
uint8 bRight : 1;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
FVector DefaultFingertipsColliderSize;
UPROPERTY(EditAnywhere, Category="SenseGlove | Grab", meta=(AllowPrivateAccess="false"))
FVector DefaultFingertipsGrabColliderSize;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
FName ThumbFingertipSocketName;
UPROPERTY(EditAnywhere, Category="SenseGlove | Grab", meta=(AllowPrivateAccess="false"))
FName ThumbFingertipGrabSocketName;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
FName IndexFingertipSocketName;
UPROPERTY(EditAnywhere, Category="SenseGlove | Grab", meta=(AllowPrivateAccess="false"))
FName IndexFingertipGrabSocketName;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
FName MiddleFingertipSocketName;
UPROPERTY(EditAnywhere, Category="SenseGlove | Grab", meta=(AllowPrivateAccess="false"))
FName MiddleFingertipGrabSocketName;
UPROPERTY(EditAnywhere, Category="SenseGlove | Touch", meta=(AllowPrivateAccess="false"))
FVector DefaultFingertipsTouchColliderSize;
UPROPERTY(EditAnywhere, Category="SenseGlove | Touch", meta=(AllowPrivateAccess="false"))
FName ThumbFingertipTouchSocketName;
UPROPERTY(EditAnywhere, Category="SenseGlove | Touch", meta=(AllowPrivateAccess="false"))
FName IndexFingertipTouchSocketName;
UPROPERTY(EditAnywhere, Category="SenseGlove | Touch", meta=(AllowPrivateAccess="false"))
FName MiddleFingertipTouchSocketName;
UPROPERTY(EditAnywhere, Category="SenseGlove | Touch", meta=(AllowPrivateAccess="false"))
FName RingFingertipTouchSocketName;
UPROPERTY(EditAnywhere, Category="SenseGlove | Touch", meta=(AllowPrivateAccess="false"))
FName PinkyFingertipTouchSocketName;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
uint8 bHiddenInGameIfNoGloveDetected : 1;
@@ -126,39 +144,94 @@ public:
void SetRight(const bool bInRight);
FORCEINLINE const FVector& GetDefaultFingertipsColliderSize() const
FORCEINLINE const FVector& GetDefaultFingertipsGrabColliderSize() const
{
return DefaultFingertipsColliderSize;
return DefaultFingertipsGrabColliderSize;
}
FORCEINLINE const FName& GetThumbFingertipSocketName() const
FORCEINLINE const FName& GetThumbFingertipGrabSocketName() const
{
return ThumbFingertipSocketName;
return ThumbFingertipGrabSocketName;
}
FORCEINLINE void SetThumbFingertipSocketName(const FName& SocketName)
FORCEINLINE void SetThumbFingertipGrabSocketName(const FName& GrabSocketName)
{
ThumbFingertipSocketName = SocketName;
ThumbFingertipGrabSocketName = GrabSocketName;
}
FORCEINLINE const FName& GetIndexFingertipSocketName() const
FORCEINLINE const FName& GetIndexFingertipGrabSocketName() const
{
return IndexFingertipSocketName;
return IndexFingertipGrabSocketName;
}
FORCEINLINE void SetIndexFingertipSocketName(const FName& SocketName)
FORCEINLINE void SetIndexFingertipGrabSocketName(const FName& GrabSocketName)
{
IndexFingertipSocketName = SocketName;
IndexFingertipGrabSocketName = GrabSocketName;
}
FORCEINLINE const FName& GetMiddleFingertipSocketName() const
FORCEINLINE const FName& GetMiddleFingertipGrabSocketName() const
{
return MiddleFingertipSocketName;
return MiddleFingertipGrabSocketName;
}
FORCEINLINE void SetMiddleFingertipSocketName(const FName& SocketName)
FORCEINLINE void SetMiddleFingertipGrabSocketName(const FName& GrabSocketName)
{
MiddleFingertipSocketName = SocketName;
MiddleFingertipGrabSocketName = GrabSocketName;
}
FORCEINLINE const FVector& GetDefaultFingertipsTouchColliderSize() const
{
return DefaultFingertipsTouchColliderSize;
}
FORCEINLINE const FName& GetThumbFingertipTouchSocketName() const
{
return ThumbFingertipTouchSocketName;
}
FORCEINLINE void SetThumbFingertipTouchSocketName(const FName& TouchSocketName)
{
ThumbFingertipTouchSocketName = TouchSocketName;
}
FORCEINLINE const FName& GetIndexFingertipTouchSocketName() const
{
return IndexFingertipTouchSocketName;
}
FORCEINLINE void SetIndexFingertipTouchSocketName(const FName& TouchSocketName)
{
IndexFingertipTouchSocketName = TouchSocketName;
}
FORCEINLINE const FName& GetMiddleFingertipTouchSocketName() const
{
return MiddleFingertipTouchSocketName;
}
FORCEINLINE void SetMiddleFingertipTouchSocketName(const FName& TouchSocketName)
{
MiddleFingertipTouchSocketName = TouchSocketName;
}
FORCEINLINE const FName& GetRingFingertipTouchSocketName() const
{
return RingFingertipTouchSocketName;
}
FORCEINLINE void SetRingFingertipTouchSocketName(const FName& TouchSocketName)
{
RingFingertipTouchSocketName = TouchSocketName;
}
FORCEINLINE const FName& GetPinkyFingertipTouchSocketName() const
{
return PinkyFingertipTouchSocketName;
}
FORCEINLINE void SetPinkyFingertipTouchSocketName(const FName& TouchSocketName)
{
PinkyFingertipTouchSocketName = TouchSocketName;
}
FORCEINLINE bool IsHiddenInGameIfNoGloveDetected() const
@@ -76,13 +76,28 @@ private:
USGVirtualHandComponent* HandLeft;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* LeftThumbFingertipCollider;
USphereComponent* LeftThumbFingertipGrabCollider;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* LeftIndexFingertipCollider;
USphereComponent* LeftIndexFingertipGrabCollider;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* LeftMiddleFingertipCollider;
USphereComponent* LeftMiddleFingertipGrabCollider;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* LeftThumbFingertipTouchCollider;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* LeftIndexFingertipTouchCollider;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* LeftMiddleFingertipTouchCollider;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* LeftRingFingertipTouchCollider;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* LeftPinkyFingertipTouchCollider;
UPROPERTY(VisibleAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USGWristTrackerComponent* WristTrackerRight;
@@ -91,13 +106,28 @@ private:
USGVirtualHandComponent* HandRight;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* RightThumbFingertipCollider;
USphereComponent* RightThumbFingertipGrabCollider;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* RightIndexFingertipCollider;
USphereComponent* RightIndexFingertipGrabCollider;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* RightMiddleFingertipCollider;
USphereComponent* RightMiddleFingertipGrabCollider;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* RightThumbFingertipTouchCollider;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* RightIndexFingertipTouchCollider;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* RightMiddleFingertipTouchCollider;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* RightRingFingertipTouchCollider;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* RightPinkyFingertipTouchCollider;
public:
FORCEINLINE UCameraComponent* GetCamera() const
@@ -115,19 +145,44 @@ public:
return HandLeft;
}
FORCEINLINE USphereComponent* GetLeftThumbFingertipCollider() const
FORCEINLINE USphereComponent* GetLeftThumbFingertipGrabCollider() const
{
return LeftThumbFingertipCollider;
return LeftThumbFingertipGrabCollider;
}
FORCEINLINE USphereComponent* GetLeftIndexFingertipCollider() const
FORCEINLINE USphereComponent* GetLeftIndexFingertipGrabCollider() const
{
return LeftIndexFingertipCollider;
return LeftIndexFingertipGrabCollider;
}
FORCEINLINE USphereComponent* GetLeftMiddleFingertipCollider() const
FORCEINLINE USphereComponent* GetLeftMiddleFingertipGrabCollider() const
{
return LeftMiddleFingertipCollider;
return LeftMiddleFingertipGrabCollider;
}
FORCEINLINE USphereComponent* GetLeftThumbFingertipTouchCollider() const
{
return LeftThumbFingertipTouchCollider;
}
FORCEINLINE USphereComponent* GetLeftIndexFingertipTouchCollider() const
{
return LeftIndexFingertipTouchCollider;
}
FORCEINLINE USphereComponent* GetLeftMiddleFingertipTouchCollider() const
{
return LeftMiddleFingertipTouchCollider;
}
FORCEINLINE USphereComponent* GetLeftRingFingertipTouchCollider() const
{
return LeftRingFingertipTouchCollider;
}
FORCEINLINE USphereComponent* GetLeftPinkyFingertipTouchCollider() const
{
return LeftPinkyFingertipTouchCollider;
}
FORCEINLINE USGWristTrackerComponent* GetWristTrackerRight() const
@@ -140,19 +195,44 @@ public:
return HandRight;
}
FORCEINLINE USphereComponent* GetRightThumbFingertipCollider() const
FORCEINLINE USphereComponent* GetRightThumbFingertipGrabCollider() const
{
return RightThumbFingertipCollider;
return RightThumbFingertipGrabCollider;
}
FORCEINLINE USphereComponent* GetRightIndexFingertipCollider() const
FORCEINLINE USphereComponent* GetRightIndexFingertipGrabCollider() const
{
return RightIndexFingertipCollider;
return RightIndexFingertipGrabCollider;
}
FORCEINLINE USphereComponent* GetRightMiddleFingertipCollider() const
FORCEINLINE USphereComponent* GetRightMiddleFingertipGrabCollider() const
{
return RightMiddleFingertipCollider;
return RightMiddleFingertipGrabCollider;
}
FORCEINLINE USphereComponent* GetRightThumbFingertipTouchCollider() const
{
return RightThumbFingertipTouchCollider;
}
FORCEINLINE USphereComponent* GetRightIndexFingertipTouchCollider() const
{
return RightIndexFingertipTouchCollider;
}
FORCEINLINE USphereComponent* GetRightMiddleFingertipTouchCollider() const
{
return RightMiddleFingertipTouchCollider;
}
FORCEINLINE USphereComponent* GetRightRingFingertipTouchCollider() const
{
return RightRingFingertipTouchCollider;
}
FORCEINLINE USphereComponent* GetRightPinkyFingertipTouchCollider() const
{
return RightPinkyFingertipTouchCollider;
}
public:
@@ -79,13 +79,28 @@ private:
USGVirtualHandComponent* VirtualHand;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* ThumbFingertipCollider;
USphereComponent* ThumbFingertipGrabCollider;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* IndexFingertipCollider;
USphereComponent* IndexFingertipGrabCollider;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* MiddleFingertipCollider;
USphereComponent* MiddleFingertipGrabCollider;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* ThumbFingertipTouchCollider;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* IndexFingertipTouchCollider;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* MiddleFingertipTouchCollider;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* RingFingertipTouchCollider;
UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false"))
USphereComponent* PinkyFingertipTouchCollider;
public:
FORCEINLINE USGWristTrackerComponent* GetWristTracker() const
@@ -98,19 +113,44 @@ public:
return VirtualHand;
}
FORCEINLINE USphereComponent* GetThumbFingertipCollider() const
FORCEINLINE USphereComponent* GetThumbFingertipGrabCollider() const
{
return ThumbFingertipCollider;
return ThumbFingertipGrabCollider;
}
FORCEINLINE USphereComponent* GetIndexFingertipCollider() const
FORCEINLINE USphereComponent* GetIndexFingertipGrabCollider() const
{
return IndexFingertipCollider;
return IndexFingertipGrabCollider;
}
FORCEINLINE USphereComponent* GetMiddleFingertipCollider() const
FORCEINLINE USphereComponent* GetMiddleFingertipGrabCollider() const
{
return MiddleFingertipCollider;
return MiddleFingertipGrabCollider;
}
FORCEINLINE USphereComponent* GetThumbFingertipTouchCollider() const
{
return ThumbFingertipTouchCollider;
}
FORCEINLINE USphereComponent* GetIndexFingertipTouchCollider() const
{
return IndexFingertipTouchCollider;
}
FORCEINLINE USphereComponent* GetMiddleFingertipTouchCollider() const
{
return MiddleFingertipTouchCollider;
}
FORCEINLINE USphereComponent* GetRingFingertipTouchCollider() const
{
return RingFingertipTouchCollider;
}
FORCEINLINE USphereComponent* GetPinkyFingertipTouchCollider() const
{
return PinkyFingertipTouchCollider;
}
protected:
@@ -57,19 +57,44 @@ USGVirtualHandComponent* UPawnKismetLibrary::GetHandLeft(const ASGPawn* Pawn)
return Pawn->GetHandLeft();
}
USphereComponent* UPawnKismetLibrary::GetLeftThumbFingertipCollider(const ASGPawn* Pawn)
USphereComponent* UPawnKismetLibrary::GetLeftThumbFingertipGrabCollider(const ASGPawn* Pawn)
{
return Pawn->GetLeftThumbFingertipCollider();
return Pawn->GetLeftThumbFingertipGrabCollider();
}
USphereComponent* UPawnKismetLibrary::GetLeftIndexFingertipCollider(const ASGPawn* Pawn)
USphereComponent* UPawnKismetLibrary::GetLeftIndexFingertipGrabCollider(const ASGPawn* Pawn)
{
return Pawn->GetLeftIndexFingertipCollider();
return Pawn->GetLeftIndexFingertipGrabCollider();
}
USphereComponent* UPawnKismetLibrary::GetLeftMiddleFingertipCollider(const ASGPawn* Pawn)
USphereComponent* UPawnKismetLibrary::GetLeftMiddleFingertipGrabCollider(const ASGPawn* Pawn)
{
return Pawn->GetLeftMiddleFingertipCollider();
return Pawn->GetLeftMiddleFingertipGrabCollider();
}
USphereComponent* UPawnKismetLibrary::GetLeftThumbFingertipTouchCollider(const ASGPawn* Pawn)
{
return Pawn->GetLeftThumbFingertipTouchCollider();
}
USphereComponent* UPawnKismetLibrary::GetLeftIndexFingertipTouchCollider(const ASGPawn* Pawn)
{
return Pawn->GetLeftIndexFingertipTouchCollider();
}
USphereComponent* UPawnKismetLibrary::GetLeftMiddleFingertipTouchCollider(const ASGPawn* Pawn)
{
return Pawn->GetLeftMiddleFingertipTouchCollider();
}
USphereComponent* UPawnKismetLibrary::GetLeftRingFingertipTouchCollider(const ASGPawn* Pawn)
{
return Pawn->GetLeftRingFingertipTouchCollider();
}
USphereComponent* UPawnKismetLibrary::GetLeftPinkyFingertipTouchCollider(const ASGPawn* Pawn)
{
return Pawn->GetLeftPinkyFingertipTouchCollider();
}
USGWristTrackerComponent* UPawnKismetLibrary::GetWristTrackerRight(const ASGPawn* Pawn)
@@ -82,17 +107,42 @@ USGVirtualHandComponent* UPawnKismetLibrary::GetHandRight(const ASGPawn* Pawn)
return Pawn->GetHandRight();
}
USphereComponent* UPawnKismetLibrary::GetRightThumbFingertipCollider(const ASGPawn* Pawn)
USphereComponent* UPawnKismetLibrary::GetRightThumbFingertipGrabCollider(const ASGPawn* Pawn)
{
return Pawn->GetRightThumbFingertipCollider();
return Pawn->GetRightThumbFingertipGrabCollider();
}
USphereComponent* UPawnKismetLibrary::GetRightIndexFingertipCollider(const ASGPawn* Pawn)
USphereComponent* UPawnKismetLibrary::GetRightIndexFingertipGrabCollider(const ASGPawn* Pawn)
{
return Pawn->GetRightIndexFingertipCollider();
return Pawn->GetRightIndexFingertipGrabCollider();
}
USphereComponent* UPawnKismetLibrary::GetRightMiddleFingertipCollider(const ASGPawn* Pawn)
USphereComponent* UPawnKismetLibrary::GetRightMiddleFingertipGrabCollider(const ASGPawn* Pawn)
{
return Pawn->GetRightMiddleFingertipCollider();
return Pawn->GetRightMiddleFingertipGrabCollider();
}
USphereComponent* UPawnKismetLibrary::GetRightThumbFingertipTouchCollider(const ASGPawn* Pawn)
{
return Pawn->GetRightThumbFingertipTouchCollider();
}
USphereComponent* UPawnKismetLibrary::GetRightIndexFingertipTouchCollider(const ASGPawn* Pawn)
{
return Pawn->GetRightIndexFingertipTouchCollider();
}
USphereComponent* UPawnKismetLibrary::GetRightMiddleFingertipTouchCollider(const ASGPawn* Pawn)
{
return Pawn->GetRightMiddleFingertipTouchCollider();
}
USphereComponent* UPawnKismetLibrary::GetRightRingFingertipTouchCollider(const ASGPawn* Pawn)
{
return Pawn->GetRightRingFingertipTouchCollider();
}
USphereComponent* UPawnKismetLibrary::GetRightPinkyFingertipTouchCollider(const ASGPawn* Pawn)
{
return Pawn->GetRightPinkyFingertipTouchCollider();
}
@@ -51,22 +51,51 @@ USGVirtualHandComponent* UVirtualHandActorKismetLibrary::GetVirtualHand(const AS
return VirtualHandActor->GetVirtualHand();
}
USphereComponent* UVirtualHandActorKismetLibrary::GetThumbFingertipCollider(
USphereComponent* UVirtualHandActorKismetLibrary::GetThumbFingertipGrabCollider(
const ASGVirtualHandActor* VirtualHandActor)
{
return VirtualHandActor->GetThumbFingertipCollider();
return VirtualHandActor->GetThumbFingertipGrabCollider();
}
USphereComponent* UVirtualHandActorKismetLibrary::GetIndexFingertipCollider(
USphereComponent* UVirtualHandActorKismetLibrary::GetIndexFingertipGrabCollider(
const ASGVirtualHandActor* VirtualHandActor)
{
return VirtualHandActor->GetIndexFingertipCollider();
return VirtualHandActor->GetIndexFingertipGrabCollider();
}
USphereComponent* UVirtualHandActorKismetLibrary::GetMiddleFingertipCollider(
USphereComponent* UVirtualHandActorKismetLibrary::GetMiddleFingertipGrabCollider(
const ASGVirtualHandActor* VirtualHandActor)
{
return VirtualHandActor->GetMiddleFingertipCollider();
return VirtualHandActor->GetMiddleFingertipGrabCollider();
}
USphereComponent* UVirtualHandActorKismetLibrary::GetThumbFingertipTouchCollider(
const ASGVirtualHandActor* VirtualHandActor)
{
return VirtualHandActor->GetThumbFingertipTouchCollider();
}
USphereComponent* UVirtualHandActorKismetLibrary::GetIndexFingertipTouchCollider(
const ASGVirtualHandActor* VirtualHandActor)
{
return VirtualHandActor->GetIndexFingertipTouchCollider();
}
USphereComponent* UVirtualHandActorKismetLibrary::GetMiddleFingertipTouchCollider(
const ASGVirtualHandActor* VirtualHandActor)
{
return VirtualHandActor->GetMiddleFingertipTouchCollider();
}
USphereComponent* UVirtualHandActorKismetLibrary::GetRingFingertipTouchCollider(
const ASGVirtualHandActor* VirtualHandActor)
{
return VirtualHandActor->GetRingFingertipTouchCollider();
}
USphereComponent* UVirtualHandActorKismetLibrary::GetPinkyFingertipTouchCollider(
const ASGVirtualHandActor* VirtualHandActor)
{
return VirtualHandActor->GetPinkyFingertipTouchCollider();
}
bool UVirtualHandActorKismetLibrary::IsLeft(const ASGVirtualHandActor* VirtualHandActor)
@@ -77,46 +77,113 @@ void UVirtualHandComponentKismetLibrary::SetRight(USGVirtualHandComponent* Virtu
VirtualHandComponent->SetRight(bInRight);
}
const FVector& UVirtualHandComponentKismetLibrary::GetDefaultFingertipsColliderSize(
const FVector& UVirtualHandComponentKismetLibrary::GetDefaultFingertipsGrabColliderSize(
const USGVirtualHandComponent* VirtualHandComponent)
{
return VirtualHandComponent->GetDefaultFingertipsColliderSize();
return VirtualHandComponent->GetDefaultFingertipsGrabColliderSize();
}
const FName& UVirtualHandComponentKismetLibrary::GetThumbFingertipSocketName(
const FName& UVirtualHandComponentKismetLibrary::GetThumbFingertipGrabSocketName(
const USGVirtualHandComponent* VirtualHandComponent)
{
return VirtualHandComponent->GetThumbFingertipSocketName();
return VirtualHandComponent->GetThumbFingertipGrabSocketName();
}
void UVirtualHandComponentKismetLibrary::SetThumbFingertipSocketName(USGVirtualHandComponent* VirtualHandComponent,
const FName& SocketName)
void UVirtualHandComponentKismetLibrary::SetThumbFingertipGrabSocketName(USGVirtualHandComponent* VirtualHandComponent,
const FName& GrabSocketName)
{
VirtualHandComponent->SetThumbFingertipSocketName(SocketName);
VirtualHandComponent->SetThumbFingertipGrabSocketName(GrabSocketName);
}
const FName& UVirtualHandComponentKismetLibrary::GetIndexFingertipSocketName(
const FName& UVirtualHandComponentKismetLibrary::GetIndexFingertipGrabSocketName(
const USGVirtualHandComponent* VirtualHandComponent)
{
return VirtualHandComponent->GetIndexFingertipSocketName();
return VirtualHandComponent->GetIndexFingertipGrabSocketName();
}
void UVirtualHandComponentKismetLibrary::SetIndexFingertipSocketName(USGVirtualHandComponent* VirtualHandComponent,
const FName& SocketName)
void UVirtualHandComponentKismetLibrary::SetIndexFingertipGrabSocketName(USGVirtualHandComponent* VirtualHandComponent,
const FName& GrabSocketName)
{
VirtualHandComponent->SetIndexFingertipSocketName(SocketName);
VirtualHandComponent->SetIndexFingertipGrabSocketName(GrabSocketName);
}
const FName& UVirtualHandComponentKismetLibrary::GetMiddleFingertipSocketName(
const FName& UVirtualHandComponentKismetLibrary::GetMiddleFingertipGrabSocketName(
const USGVirtualHandComponent* VirtualHandComponent)
{
return VirtualHandComponent->GetMiddleFingertipSocketName();
return VirtualHandComponent->GetMiddleFingertipGrabSocketName();
}
void UVirtualHandComponentKismetLibrary::SetMiddleFingertipSocketName(USGVirtualHandComponent* VirtualHandComponent,
const FName& SocketName)
void UVirtualHandComponentKismetLibrary::SetMiddleFingertipGrabSocketName(USGVirtualHandComponent* VirtualHandComponent,
const FName& GrabSocketName)
{
VirtualHandComponent->SetMiddleFingertipSocketName(SocketName);
VirtualHandComponent->SetMiddleFingertipGrabSocketName(GrabSocketName);
}
const FVector& UVirtualHandComponentKismetLibrary::GetDefaultFingertipsTouchColliderSize(
const USGVirtualHandComponent* VirtualHandComponent)
{
return VirtualHandComponent->GetDefaultFingertipsTouchColliderSize();
}
const FName& UVirtualHandComponentKismetLibrary::GetThumbFingertipTouchSocketName(
const USGVirtualHandComponent* VirtualHandComponent)
{
return VirtualHandComponent->GetThumbFingertipTouchSocketName();
}
void UVirtualHandComponentKismetLibrary::SetThumbFingertipTouchSocketName(USGVirtualHandComponent* VirtualHandComponent,
const FName& TouchSocketName)
{
VirtualHandComponent->SetThumbFingertipTouchSocketName(TouchSocketName);
}
const FName& UVirtualHandComponentKismetLibrary::GetIndexFingertipTouchSocketName(
const USGVirtualHandComponent* VirtualHandComponent)
{
return VirtualHandComponent->GetIndexFingertipTouchSocketName();
}
void UVirtualHandComponentKismetLibrary::SetIndexFingertipTouchSocketName(USGVirtualHandComponent* VirtualHandComponent,
const FName& TouchSocketName)
{
VirtualHandComponent->SetIndexFingertipTouchSocketName(TouchSocketName);
}
const FName& UVirtualHandComponentKismetLibrary::GetMiddleFingertipTouchSocketName(
const USGVirtualHandComponent* VirtualHandComponent)
{
return VirtualHandComponent->GetMiddleFingertipTouchSocketName();
}
void UVirtualHandComponentKismetLibrary::SetMiddleFingertipTouchSocketName(
USGVirtualHandComponent* VirtualHandComponent,
const FName& TouchSocketName)
{
VirtualHandComponent->SetMiddleFingertipTouchSocketName(TouchSocketName);
}
const FName& UVirtualHandComponentKismetLibrary::GetRingFingertipTouchSocketName(
const USGVirtualHandComponent* VirtualHandComponent)
{
return VirtualHandComponent->GetRingFingertipTouchSocketName();
}
void UVirtualHandComponentKismetLibrary::SetRingFingertipTouchSocketName(USGVirtualHandComponent* VirtualHandComponent,
const FName& TouchSocketName)
{
VirtualHandComponent->SetRingFingertipTouchSocketName(TouchSocketName);
}
const FName& UVirtualHandComponentKismetLibrary::GetPinkyFingertipTouchSocketName(
const USGVirtualHandComponent* VirtualHandComponent)
{
return VirtualHandComponent->GetPinkyFingertipTouchSocketName();
}
void UVirtualHandComponentKismetLibrary::SetPinkyFingertipTouchSocketName(USGVirtualHandComponent* VirtualHandComponent,
const FName& TouchSocketName)
{
VirtualHandComponent->SetPinkyFingertipTouchSocketName(TouchSocketName);
}
bool UVirtualHandComponentKismetLibrary::IsHiddenInGameIfNoGloveDetected(
@@ -72,13 +72,28 @@ public:
static USGVirtualHandComponent* GetHandLeft(const ASGPawn* Pawn);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Pawn")
static USphereComponent* GetLeftThumbFingertipCollider(const ASGPawn* Pawn);
static USphereComponent* GetLeftThumbFingertipGrabCollider(const ASGPawn* Pawn);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Pawn")
static USphereComponent* GetLeftIndexFingertipCollider(const ASGPawn* Pawn);
static USphereComponent* GetLeftIndexFingertipGrabCollider(const ASGPawn* Pawn);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Pawn")
static USphereComponent* GetLeftMiddleFingertipCollider(const ASGPawn* Pawn);
static USphereComponent* GetLeftMiddleFingertipGrabCollider(const ASGPawn* Pawn);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Pawn")
static USphereComponent* GetLeftThumbFingertipTouchCollider(const ASGPawn* Pawn);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Pawn")
static USphereComponent* GetLeftIndexFingertipTouchCollider(const ASGPawn* Pawn);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Pawn")
static USphereComponent* GetLeftMiddleFingertipTouchCollider(const ASGPawn* Pawn);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Pawn")
static USphereComponent* GetLeftRingFingertipTouchCollider(const ASGPawn* Pawn);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Pawn")
static USphereComponent* GetLeftPinkyFingertipTouchCollider(const ASGPawn* Pawn);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Pawn")
static USGWristTrackerComponent* GetWristTrackerRight(const ASGPawn* Pawn);
@@ -87,11 +102,26 @@ public:
static USGVirtualHandComponent* GetHandRight(const ASGPawn* Pawn);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Pawn")
static USphereComponent* GetRightThumbFingertipCollider(const ASGPawn* Pawn);
static USphereComponent* GetRightThumbFingertipGrabCollider(const ASGPawn* Pawn);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Pawn")
static USphereComponent* GetRightIndexFingertipCollider(const ASGPawn* Pawn);
static USphereComponent* GetRightIndexFingertipGrabCollider(const ASGPawn* Pawn);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Pawn")
static USphereComponent* GetRightMiddleFingertipCollider(const ASGPawn* Pawn);
static USphereComponent* GetRightMiddleFingertipGrabCollider(const ASGPawn* Pawn);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Pawn")
static USphereComponent* GetRightThumbFingertipTouchCollider(const ASGPawn* Pawn);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Pawn")
static USphereComponent* GetRightIndexFingertipTouchCollider(const ASGPawn* Pawn);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Pawn")
static USphereComponent* GetRightMiddleFingertipTouchCollider(const ASGPawn* Pawn);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Pawn")
static USphereComponent* GetRightRingFingertipTouchCollider(const ASGPawn* Pawn);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Pawn")
static USphereComponent* GetRightPinkyFingertipTouchCollider(const ASGPawn* Pawn);
};
@@ -60,13 +60,28 @@ public:
static USGVirtualHandComponent* GetVirtualHand(const ASGVirtualHandActor* VirtualHandActor);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Virtual Hand")
static USphereComponent* GetThumbFingertipCollider(const ASGVirtualHandActor* VirtualHandActor);
static USphereComponent* GetThumbFingertipGrabCollider(const ASGVirtualHandActor* VirtualHandActor);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Virtual Hand")
static USphereComponent* GetIndexFingertipCollider(const ASGVirtualHandActor* VirtualHandActor);
static USphereComponent* GetIndexFingertipGrabCollider(const ASGVirtualHandActor* VirtualHandActor);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Virtual Hand")
static USphereComponent* GetMiddleFingertipCollider(const ASGVirtualHandActor* VirtualHandActor);
static USphereComponent* GetMiddleFingertipGrabCollider(const ASGVirtualHandActor* VirtualHandActor);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Virtual Hand")
static USphereComponent* GetThumbFingertipTouchCollider(const ASGVirtualHandActor* VirtualHandActor);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Virtual Hand")
static USphereComponent* GetIndexFingertipTouchCollider(const ASGVirtualHandActor* VirtualHandActor);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Virtual Hand")
static USphereComponent* GetMiddleFingertipTouchCollider(const ASGVirtualHandActor* VirtualHandActor);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Virtual Hand")
static USphereComponent* GetRingFingertipTouchCollider(const ASGVirtualHandActor* VirtualHandActor);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Virtual Hand")
static USphereComponent* GetPinkyFingertipTouchCollider(const ASGVirtualHandActor* VirtualHandActor);
UFUNCTION(BlueprintPure, Category="SenseGlove | Game Framework | Virtual Hand")
static bool IsLeft(const ASGVirtualHandActor* VirtualHandActor);
@@ -81,28 +81,66 @@ public:
static void SetRight(UPARAM(ref) USGVirtualHandComponent* VirtualHandComponent, bool bInRight);
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Component")
static const FVector& GetDefaultFingertipsColliderSize(const USGVirtualHandComponent* VirtualHandComponent);
static const FVector& GetDefaultFingertipsGrabColliderSize(const USGVirtualHandComponent* VirtualHandComponent);
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Component")
static const FName& GetThumbFingertipSocketName(const USGVirtualHandComponent* VirtualHandComponent);
static const FName& GetThumbFingertipGrabSocketName(const USGVirtualHandComponent* VirtualHandComponent);
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Component")
static void SetThumbFingertipSocketName(UPARAM(ref) USGVirtualHandComponent* VirtualHandComponent,
const FName& SocketName);
static void SetThumbFingertipGrabSocketName(UPARAM(ref) USGVirtualHandComponent* VirtualHandComponent,
const FName& GrabSocketName);
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Component")
static const FName& GetIndexFingertipSocketName(const USGVirtualHandComponent* VirtualHandComponent);
static const FName& GetIndexFingertipGrabSocketName(const USGVirtualHandComponent* VirtualHandComponent);
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Component")
static void SetIndexFingertipSocketName(UPARAM(ref) USGVirtualHandComponent* VirtualHandComponent,
const FName& SocketName);
static void SetIndexFingertipGrabSocketName(UPARAM(ref) USGVirtualHandComponent* VirtualHandComponent,
const FName& GrabSocketName);
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Component")
static const FName& GetMiddleFingertipSocketName(const USGVirtualHandComponent* VirtualHandComponent);
static const FName& GetMiddleFingertipGrabSocketName(const USGVirtualHandComponent* VirtualHandComponent);
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Component")
static void SetMiddleFingertipSocketName(UPARAM(ref) USGVirtualHandComponent* VirtualHandComponent,
const FName& SocketName);
static void SetMiddleFingertipGrabSocketName(UPARAM(ref) USGVirtualHandComponent* VirtualHandComponent,
const FName& GrabSocketName);
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Component")
static const FVector& GetDefaultFingertipsTouchColliderSize(const USGVirtualHandComponent* VirtualHandComponent);
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Component")
static const FName& GetThumbFingertipTouchSocketName(const USGVirtualHandComponent* VirtualHandComponent);
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Component")
static void SetThumbFingertipTouchSocketName(UPARAM(ref) USGVirtualHandComponent* VirtualHandComponent,
const FName& TouchSocketName);
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Component")
static const FName& GetIndexFingertipTouchSocketName(const USGVirtualHandComponent* VirtualHandComponent);
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Component")
static void SetIndexFingertipTouchSocketName(UPARAM(ref) USGVirtualHandComponent* VirtualHandComponent,
const FName& TouchSocketName);
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Component")
static const FName& GetMiddleFingertipTouchSocketName(const USGVirtualHandComponent* VirtualHandComponent);
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Component")
static void SetMiddleFingertipTouchSocketName(UPARAM(ref) USGVirtualHandComponent* VirtualHandComponent,
const FName& TouchSocketName);
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Component")
static const FName& GetRingFingertipTouchSocketName(const USGVirtualHandComponent* VirtualHandComponent);
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Component")
static void SetRingFingertipTouchSocketName(UPARAM(ref) USGVirtualHandComponent* VirtualHandComponent,
const FName& TouchSocketName);
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Component")
static const FName& GetPinkyFingertipTouchSocketName(const USGVirtualHandComponent* VirtualHandComponent);
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Component")
static void SetPinkyFingertipTouchSocketName(UPARAM(ref) USGVirtualHandComponent* VirtualHandComponent,
const FName& TouchSocketName);
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Component")
static bool IsHiddenInGameIfNoGloveDetected(const USGVirtualHandComponent* VirtualHandComponent);