UPROPERTY(VisibleAnywhere) 이 나오면 컴포넌트구나 ~ 생각하면 된다
roll : x축 회전
pitch : y축 회전
yaw : z축 회전
FRotator (pitch, yaw, roll); 순서 주의하기 !
FRotator, FQuat(쿼터니언), RotationMatrix(3x3) 는 1:1:1 매칭된다
FRotator : 360분법으로 사용하기 편하다
GetSafeNormal : 크기가 0인거 막아준다 ( 나누기 0 하면 안될 때 사용한다)
GetUnSafeNormal
CGameMode : 기본 캐릭터를 CPlayer 클래스로 지정한다
(GameModeBase)
DefaultPawnClass
ConstructorHelpers::FClassFinder<APawn> pawn(L"Blueprint'/Game/BP_CPlayer.BP_CPlayer_C'");
파일경로 레퍼런스 복사 해서 가져올 때 ' _C ' 붙여야 한다
파일을 바꾸거나 지웠으면 언리얼 쪽에서 컴파일해줘야 변경사항이 반영된다
Animation 만들 때 AnimInstance를 상속받는다
부모에 Actor가 없으면 클래스명 앞에 U가 붙는다
Actor가 있으면 A가 붙는다
EditDefaultOnly는 사실상 Actor만 쓸 수 있는 애
EditAnywhere를 체크해야 프리뷰 에디터에 나타난다
Actor를 상속받지 않은 애들은 거의 다 EditAnywhere를 사용하면 된다
블루프린트에서는 BlueprintUpdateAnimation(), C에서는 NativeUpdateAnimation ()
C는 Native가 보통 붙어있다
Unreal C에서는 virtual 함수를 재정의할 때 꼭 override를 붙여줘야한다
SceneComponent부터 transform을 가지고 있다
매크로는 한줄로 이루어져있다 -> 역슬래시( \ )로 줄 이어주면 된다
함수에 On 붙어있는거는 이벤트 !
델리게이션 (Delegation)
Parameter 개수, Dynamic인지가 중요하다
Dynamic 이 붙었을 때
- 파라미터의 자료형과 변수명까지 일치시켜야한다
- AddDynamic으로 연결해준다
- 무조건 블루프린트와 연동된다
- 런타임 이후에 동작하기 때문에 BeginPlay이후에 해줘야한다 ( 프로그램 내부적으로 쓰는 경우 제외)
생성자는 런타임 전, 에디터 설정 BeginPlay부터 게임 실행!
OnActorBeginOverlap.AddDynamic(this, &AC01_ActorOverlap::BeginOverlap);
Dynamic이 안붙었을 때
- 파라미터의 자료형만 일치시켜주면 된다
SPARSE : 좀 더 강하게 제한을 건 델리게이션
(자료형, 해당 클래스(어떤 클래스에서 쓸지), 그 클래스에서 사용할 이름 , 파라미터 -)
'> Study > Unreal Engine 4' 카테고리의 다른 글
[Unreal C++] EQS (Environment Query System) (0) | 2024.02.26 |
---|---|
[Unreal C++] Component Overlap, Delgate, Trigger (0) | 2023.07.14 |
[Unreal C++] Spawn, Log, TSubClassOf (0) | 2023.06.22 |
[Unreal C++] Material, Component, template, Delegate (0) | 2023.06.21 |
[Unreal C++] Module, 직렬화, UPROPERTY (0) | 2023.06.21 |