언리얼에는 자동 메모리 관리 시스템이 있어서
언리얼 관련 컴포넌트 포인터는 들고 있어도 삭제해버린다.
언리얼 관련이면 반드시 UPROPERTY를 붙어여만 관리 시스템이 걔를 등록해 사용을 아무데도 안할 때 삭제한다.
공개 / 수정 권한 (1개만 가능)
블루프린트 관련 (1개만 가능)
Category


Meta

입력 매핑 컨텍스트, 입력 액션으로 입력을 정의할 수 있음
입력 액션에서 해당 액션의 값 타입을 설정하고
입력 매핑 컨텍스트에서 키를 설정 가능
트리거 = 눌렸을 때 작동
모디파이
UInputMappingContext로 입력 매핑 컨텍스트를 받아올 수 있고
UEnhancedInputLocalPlayerSubsystem을 가져와 AddMappingContext로 입력 매핑 컨텍스트를 설정할 수 있음
UE_LOG로 로그 남기기 가능
InputComponent의 BindAction() 함수로 키 설정 가능
fbx 임포트할 때
메시 임포트 체크박스가 있는데 끄면 메시는 없고 본만 들어와서 애니메이션만 넣을 수 있음
우클릭해서 액션에서 익스포트로 빼던가 이주로 옮길 수 있다.
언리얼에선 어딘 2바이트고 4바이트하는 문제 해결할려고 int32 쓴다는데 잘 모르겠다
일단 나는 그렇게 쓰는걸 본적이 없긴 하다.
SpawnDefaultController()
캐릭터가 생성되었을 때 그에 맞는 컨트롤러를 자동으로 인식시킨다
언리얼 - SpawnDefaultController
아무래도 기본 컨트롤러를 넣어주는 듯?
TObjectPtr<class USpringArmComponent>
이런식으로 전방 선언과 함께 포인터를 사용할 수 있음
언리얼은 USpringArmComponent* 이런 포인터보단
TObjectPtr<USpringArmComponent>을 사용하는걸 권장함
대충 맴버 변수 선언 같은 건 TObjectPtr<>로 하고 지역 변수는 포인터로 해도 문제없는 듯함.
UEnhancedInputComponent를 쓰려면 모듈을 추가해야함.
.Build.cs에 들어가면 모듈을 추가할 수 있음
public 모듈과 private 모듈이 있는데 EnhancedInput은 public에 넣으면 되는 듯?
IsValid(UObject*)
포인터 부분에 있는게 존재 하는지, 삭제 예정인지 확인하고 존재한다면 true를 반환해줌
Cast<타입>으로 형변환함
이게 내가 기억하는 바로는 언리얼 타입으로 변환 가능한지 추가로 검사할거임
일반 타입 형변환은 여전히 static_cast<> 써야되던걸로 앎
APlayerContoller.GetViewportSize(x, y);
뷰포트 사이즈 가져옴
DeprojectScreenPositionToWorld(x, y, center, front)
화면의 x, y 위치를 디프로젝션해서 cetner와 front에 값을 넣음
UKismetMathLibrary::FindLookAtRotation(시작위치, 끝위치)으로 시작위치에서 끝위치로 회전값을 구함
TSubclassOf<타입>
클래스 타입을 담음.
보통 UPROPRTY로 열어서 타입을 받아 그걸 생성한다.
AnimInstanceBlueprint에서
Layered blend per bone으로 지정된 본을 기준으로 애니메이션을 섞을 수 있다.
레이어 설정 - 인덱스 - 분기 필터 - 인덱스에 원하는 본 이름을 입력하면 거길 기준으로 본 값이 섞인다.
UUserWidget을 상속받아 UI를 제작 가능
FText::FromString(FString)으로 FString에서 FText로 변환 가능
UI 생성은 CreateWidget<>()으로