블루프린트를 사용한 위치 확인
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++로 그린 구체
'기타 > UnReal Engine' 카테고리의 다른 글
멤버변수의 추가와 sin함수 (1) | 2023.11.21 |
---|---|
오브젝트의 이동 (초당 이동거리, Persistent, AddActorWorldOffser) (0) | 2023.11.21 |
언리얼 엔진 레벨 연습 (0) | 2023.11.13 |
UNREAL Engine(시작해요 언리얼2033) Level Instance (0) | 2023.11.12 |
UNREAL_01_02(Quixel, MegaScans, Charactor) (0) | 2023.11.12 |