람다함수
간단한 함수를 선언 없이 즉석에서 사용하는 방식
[캡쳐](매개변수) {블록}
참고로 this의 경우 c++ 버전에 따라 문제가 생길 수 있음.
FTimerDelegate::CreateLambda()는 람다함수를 타이머에 연결 가능한 델리게이트로 변환
[this]는 현재 클래스의 멤버변수 함수에 접근하기 위한 캡쳐
Delay
FTimerHandler TestTimerHandle;
GetWorld()->GetTimerManager().SetTimer(TestTimerHandle, 함수, 시간, 반복여부)
아이템 줍기
SweepSingleByChannel을 이용한다.
사용할 트레이스와 오브젝트 타입의 충돌 여부를 확인한다.
사용할 트레이스 채널은 폴더 - Config - DefaultEngine.ini에 있는 TraceChannel의 Name을 확인하자.
FQuat::Identity
회전하지 않겠다는 의미
FCollisionQueryParams Params;
Params.AddIgnoredActor(this);
현재 이 액터를 무시하기 위해서 추가
FCollisionShape::MakeBox, MakeCapsule, MakeSphere
트레이스의 형태, 박스, 캡슐, 구, 기본은 Line
Operate
특히, 무기의 메쉬는 콜리전이 없을 수도 있으므로, 스태틱메시를 열어서 콜리전을 추가해줄 필요가 있을 수도 있다.
Rifle Mode
Input RifleMode를 하나 추가해서 거기에 InputMappingContext와 연결해준다.
Enum을 헤더에서 초기화
참고
람다
https://dev.epicgames.com/documentation/ko-kr/unreal-engine/epic-cplusplus-coding-standard-for-unreal-engine#%EB%9E%8C%EB%8B%A4%EB%B0%8F%EC%9D%B5%EB%AA%85%ED%95%A8%EC%88%98
타이머
https://dev.epicgames.com/documentation/ko-kr/unreal-engine/gameplay-timers-in-unreal-engine
SweepSingleByChannel
https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/Engine/UWorld/SweepSingleByChannel
FCollisionShape
https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/PhysicsCore/FCollisionShape