블루프린트를 사용한 위치 확인

 

 


C++를 사용한 위치 디버깅

// Fill out your copyright notice in the Description page of Project Settings.


#include "Item/Item.h"
#include "DrawDebugHelpers.h"

// 매크로의 구성 
#define DRAW_SPHERE(Location) if (GetWorld()) DrawDebugSphere(GetWorld(), Location, 25.f, 20, FColor::Red, false, 60.f)

// Sets default values
AItem::AItem()
{
 	// Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
	PrimaryActorTick.bCanEverTick = true;

}

// 액터가 스폰 되었을 때 실행되는 함수
void AItem::BeginPlay()
{
	Super::BeginPlay();
    // 아웃풋 콘솔에 표기되는 로그
	UE_LOG(LogTemp, Warning,TEXT("wow"));
    
	/* 
		UWorld* world = GetWorld();
		if (world) {
			DrawDebugSphere(world, location, 20.f, 32, FColor::Cyan,false ,60.f);
	
		}
	*/
	FVector Location = GetActorLocation();
	DRAW_SPHERE(Location);


	
}

// 매 프레임마다 동작하는 함수
void AItem::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);
	if (GEngine) {
    	// Actor가 가지는 이름
		FString Name = GetName();
        // GetName은 FStringdlrl 이므로 *Name으로 TCHAR로 변환
		 FString Message = FString::Printf(TEXT("Name is %s"), *Name);
		// FString Message = FString::Printf(TEXT("DeltaTime is %f"), DeltaTime);

		GEngine->AddOnScreenDebugMessage(1, 60, FColor::Cyan, Message);
	
	}
}

 

 

 

FString의 operator*

/**
 * Get pointer to the string
 *
 * @Return Pointer to Array of TCHAR if Num, otherwise the empty string
 */
UE_NODISCARD FORCEINLINE const TCHAR* operator*() const UE_LIFETIMEBOUND
{
	return Data.Num() ? Data.GetData() : TEXT("");
}

 

 


결과

 

흰색 구체는 BluePrint로 그린 것이고 빨간색이 C++로 그린 구체

+ Recent posts