Hey Guys,
Unfortunately I’m stuck on trying to figure how to attach a function to an Actor and activate it when touched (or clicked on). I’ve tried activating the events in the playercontroller but no luck.
//PlayerController.cpp
// Called when the game starts or when spawned
void AGrottoControl::BeginPlay()
{
Super::BeginPlay();
bEnableClickEvents = true;
bEnableMouseOverEvents = true;
EnableInput(this);
//Lets Reference Our Custom Pawn
AGrottoMercsUE4Character* GrottoChar = Cast<AGrottoMercsUE4Character>(GetPawn());
//Lets Reference Our Custom GameWorld
AGrottoMercsUE4GameMode* GrottoMode = Cast<AGrottoMercsUE4GameMode>(GetWorld()->GetAuthGameMode());
//After our Camera is generated
if (PlayerCameraManager)
{
PlayerCameraManager->FreeCamDistance = 2048.0f;
}
}
//CharacterActor.h
// Called when the game starts or when spawned
virtual void BeginPlay() override;
UFUNCTION(Category = Default)
virtual void ReceiveActorOnInputTouchBegin(const ETouchIndex::Type FingerIndex, UPrimitiveComponent* TouchedComponent);
UFUNCTION(Category = Default)
virtual void ReceiveActorOnClicked(UPrimitiveComponent* TouchedComponent);
//CharacterActor.cpp
void AGrottoMercsUE4Character::BeginPlay()
{
Super::BeginPlay();
//EquipWeap();
//Lets Reference Our Custom GameWorld
AGrottoControl* GPC = (AGrottoControl*)GetWorld()->GetFirstPlayerController();
if (GPC)
{
EnableInput(GPC);
}
}
void AGrottoMercsUE4Character::ReceiveActorOnInputTouchBegin(const ETouchIndex::Type FingerIndex, UPrimitiveComponent* TouchedComponent)
{
GEngine->AddOnScreenDebugMessage(-1, 2.f, FColor::White, "I'm being touched!");
}
void AGrottoMercsUE4Character::ReceiveActorOnClicked(UPrimitiveComponent* TouchedComponent)
{
GEngine->AddOnScreenDebugMessage(-1, 2.f, FColor::Red, "I'm being touched!");
}
I’m not sure what I’m missing. Any clues or hints would be appreciated.
Thanks!