我无法弄清楚记录玩家观点的宏有什么问题。据我所知,我一定错过了一个"包括你用的东西"哈希,但我无法弄清楚它是什么。我已经尝试了所有我能想到的东西,用疯子搜索,可能与FRotator和Vectors的转换有关,可以在宏输出到控制台。
// Copyright Josh Marino 2017
#include "Grabber.h"
#include "PositionReport.generated.h"
#include "CoreMinimal.h"
#include "Engine/World.h"
// Sets default values for this component's properties
UGrabber::UGrabber()
{
// Set this component to be initialized when the game starts, and to be ticked every frame. You can turn these features
// off to improve performance if you don't need them.
PrimaryComponentTick.bCanEverTick = true;
// ...
}
// Called when the game starts
void UGrabber::BeginPlay()
{
Super::BeginPlay();
UE_LOG(LogTemp, Warning, TEXT("Grabber reporting for Duty!"))
}
// Called every frame
void UGrabber::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
{
Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
// Get Player viewpoint viewpoint
FVector PlayerViewPointLocation;
FRotator PlayerViewPointRotation;
GetWorld()->GetFirstPlayerController()->GetPlayerViewPoint(
PlayerViewPointLocation,
PlayerViewPointRotation
);
// Log Out To Test
UE_LOG(LogTemp, Warning, TEXT("Location: %s Position: %s") *PlayerViewPointLocation.ToString(), *PlayerViewPointRotation.ToString())
// Ray-Cast out to reach distance
// See what we hit
}
答案 0 :(得分:0)
由于某种原因它现在起作用........宏是愚蠢的
#include "Grabber.h"
#include "PositionReport.generated.h"
#include "CoreMinimal.h"
#include "Engine/World.h"
// Sets default values for this component's properties
UGrabber::UGrabber()
{
// Set this component to be initialized when the game starts, and to be ticked every frame. You can turn these features
// off to improve performance if you don't need them.
bWantsBeginPlay = true;
PrimaryComponentTick.bCanEverTick = true;
// ...
}
// Called when the game starts
void UGrabber::BeginPlay()
{
Super::BeginPlay();
UE_LOG(LogTemp, Warning, TEXT("Grabber reporting for duty!"));
}
// Called every frame
void UGrabber::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
{
Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
// Get player view point this tick
FVector PlayerViewPointLocation;
FRotator PlayerViewPointRotation;
GetWorld()->GetFirstPlayerController()->GetPlayerViewPoint(
OUT PlayerViewPointLocation,
OUT PlayerViewPointRotation
);
// TODO Log out to test
UE_LOG(LogTemp, Warning, TEXT("Location: %s, Rotation: %s"),
*PlayerViewPointLocation.ToString(),
*PlayerViewPointRotation.ToString()
)
// Ray-cast out to reach distance
// See what what we hit
}