[Edit]-[Editor Preferences]-[Source Code]에서 소스 코드 편집기 변경 가능
Unreal Engine5에서 Visual Studio 2022를 사용하기 위해선 C++을 사용한 게임 개발
, Unreal Engine 설치 관리자
가 설치되어 있어야 한다.
또한 .NET Core 3.1
가 설치되어 있어야 언리얼에서 Visual Studio가 열린다.
Visual Studio Code를 사용하기 위해선 C/C++
과 Unreal Engine 4 Snippets
를 설치한다.
Unreal Header Tool이 C++ 코드를 컴파일하기 전에 헤더파일를 파싱하고 UObejct 관련 기능을 구현하는 맞춤형 코드를 생성
일반 C++ 컴파일러가 호출되어 결과를 컴파일한다.
링커가 모든 파일들을 묶어 하나의 실행 가능한 파일로 변환한다.
UHT는 언리얼이 자체 리플렉션 시스템을 구현하기 위해, 언리얼 자체 매크로를 C++ 컴파일러가 해석할 수 있게 코드를 재생성해주는 툴이다.
언리얼엔진에서 블루프린트와 C++ 소스코드를 비교할 때, 헤더파일은 함수와 변수를 추가하고 cpp 파일은 이벤트 그래프와 같다고 생각하면 쉽다.
class OBSTACLESASSULTS_API AMovingPlatform : public AActor
앞서 Actor 클래스로 만든 클래스이기 때문에 클래스명 앞에 A
가 붙어있음을 알 수 있다.
C++ 코드의 변수를 디테일 패널에서 확인할 수 있게 해주는 시스템
UPROPERTY(EditAnywhere)
int32 MyInt = 99;
UPROPERTY(EditAnywhere)
float Myfloat = 5.99;
UPROPERTY(EditAnywhere)
bool Mybool = true;
UPROPERTY 옵션 옆에 Category = ""
를 작성해주면 된다
UPROPERTY(EditAnywhere, Category="Moving Platform")
FVector PlatformVelocity = FVector(100,0,0);
UPROPERTY(EditAnywhere)
FVector MyVector = FVector(1,2,3);
UPROPERTY(EditAnywhere)
float MyX = 0;
언리얼 C++코드에서 Vector 타입 변수를 사용할 때, FVector
라고 쓰는데 여기서 F
는 구조체라는 것을 나타낸다. 구조체 타입을 사용하기 위해선 생성자
를 사용한다.
MyX = MyVector.X;
구조체에서 어떤 값을 가져오기 위해서는 .연산자(점 연산자)를 사용한다
SetActorLocation(MyVector);
함수의 괄호 안에 인풋 목록(인수)이 들어간다.
MyVector라는 변수를 넣을 수 있고, 인수가 1개 이상이 들어갈 수도 있다.
SetActorLocation(FVector(1,2,3));
함수의 괄호 안에 생성자를 바로 넣어 값을 전달해 특정한 값으로 설정할 수도 있다.
void AMovingPlatform::BeginPlay()
{
Super::BeginPlay();
//MyVector의 값을 이용하여 게임이 시작되면 액터의 위치를 설정
SetActorLocation(MyVector);
}
//플랫폼의 위치를 앞뒤로 움직인다
//Move platform forwards
//Get current location
//Add vector to that location
//Set the location
//Send platform back if gone to far
//Check how far we've moved
//Reverse direction of motion if gone too far