Actor 클래스를 상속하는 C++ 클래스를 생성
MyActor (기본이름)에 대한 헤더파일, Cpp 파일이 생성된다. (C++ 해봤으면 헤더파일 cpp파일은 알고있겠지)
헤더파일에 생성자, BeginPlay, Tick이 존재한다.
- 생성자는 클래스 이름과 같은 이름으로 써있으며, 클래스에 객체가 생성될 때 한번 호출, 주로 생성된 액터의 프로퍼티인 변수의 기본값을 설정할 때 이용. 유니티에서는 Start나 Awake랑 비슷한 개념으로 생각됨.
- BeginPlay(): 액터가 배치된 월드에서 게임이 시작되거나 액터가 월드에 스폰될 때 호출됨. 게임 플레이 로직의 초기화 등에 사용. 유니티에서의 OnEnable 함수와 비슷하다고 생각.
- Tick(float DeltaTime): 매 프레임마다 한번씩 호출, 유니티에서의 Update와 비슷하나 더 정확히는 FixedUpdate랑 비슷하다고 생각할 수 있음. 매개변수로 설정된 시간 전달받기도 가능. 주로 게임의 로직 처리에 이용. (액터가 있는 한 계속 실행되기 때문) 필요없다면 Update문처럼 지우는게 더 성능에 도움이 됨.
로그찍을때는 UE_LOG(LogTemp, Log, TEXT("출력할 문자열")); (Debug.Log("출력할 문자열"); 느낌인 듯)
이를 확인하기 위해 컴파일 해보려면 에디터창 하단에 Cmd 옆에 빈 곳에 LiveCoding.Compile 실행하거나 Ctrl+Alt+F11
OutputLog 를 보면 Log 실행된 걸 볼 수 있다!
특이하게 변수 사용하려면 헤더파일에서 생성자 아래에 선언해야됨. 그리고 이를 언리얼 프로퍼티창에서 보고싶다면 UPROPERTY()를 위에 붙여줘야한다. -변수가 여러개 일 경우 변수마다 붙여주기
()내에 지정자를 넣어줘야한다.
EditAnywhere, BlueprintReadWrite, Category="Damage"식으로
EditAnywhere: 어디에서든 편집 가능
VisibleAnywhere: 프로퍼티를 모든 프로퍼티 창에서 보이게는 하고 편집은 불가능
BlueprintReadWrite: 블루프린트에서 읽고 편집도 가능하다
BlueprintReadOnly: 블루프린트에서 읽기만 가능
Transient: 해당 프로퍼티는 휘발성으로 저장 안 됨
Category: 블루프린트나 에디터 창에서 이 변수를 해당 카테고리에 묶어서 보여준다
일반C++, 유니티와는 다르게 문자열로 FString을 사용, 문자열 넣는것도 특이함
FString s = TEXT("text") 식으로 넣는다.
공개범위: public, protected(얘를 상속받은 자식한테만 보임), private
public int a; 처럼 유니티 식의 접근 지정이 아닌 public : 하고 그 문단에 int a; 식으로 적어야한다.
'공부 > Unreal Engine' 카테고리의 다른 글
[Unreal5] UI 버튼 만들기, mesh 생성 버튼 만들기 (2) | 2024.01.04 |
---|---|
[Unreal5] 언리얼에서 PCG를 활용한 아파트 단지 만들기 -2 (1) | 2023.12.01 |
[Unreal5] 언리얼에서 PCG를 활용한 아파트 단지 만들기 -1 (1) | 2023.11.30 |
[Unreal5] density를 z 좌표로 나타내는 PCG Custom 노드 만들기 (0) | 2023.11.28 |
[Unreal5] 언리얼의 PCG로 정신없는 책상 의자 만들기 (술판) (0) | 2023.11.24 |