▣ LineTrace를 쏘는 함수에 코드를 완성합니다.
▣ 필요한 변수를 정의합니다. 각각 LineTrace() 함수안에 들어갈 매개변수입니다.
▣ DrawDebugLine() 함수는 LineTrace 라인을 그려주기 위함입니다.
https://docs.unrealengine.com/4.27/en-US/API/Runtime/Engine/Engine/UWorld/LineTraceSingleByChannel/
https://docs.unrealengine.com/4.27/en-US/API/Runtime/Engine/DrawDebugLine/
▣ ECC_GameTraceChannel에 있는 건 우리가 생성한 Trace 채널을 의미합니다.
▣ 프로젝트 파일에 DefaultEngine.ini 파일에서 검색하면 이렇게 GameTraceChannel이 어떤건지 확인할 수 있습니다.
▣ 컴파일 후 플레이하고 키를 누르면 이렇게 Box가 충돌되어 삭제되는 걸 확인할 수 있습니다.
▣ 위에 코드 과정이 이미지처럼 블루프린트와 동일하다고 생각하시면 됩니다.
▣ LineTraceMulti 같은 경우 여러 개를 받아오기 때문에 배열에 템플릿 형식으로 저장하고 for문을 사용합니다.
또한 Tag에 대한 조건을 확인하고 코드를 호출하게 코드를 완성할 수도 있습니다.
▣ 컴파일 후 조건이 맞는 엑터만 삭제됩니다.
▣ #include "Kismet/KismetSystemLibrary.h" 헤더를 추가합니다.
▣ 그리고 아까 코드를 삭제하고 UKismetSystemLibrary:: 접근하여 LineTraceSingle 함수를 호출하는 코드를 완성합니다.
▣ GetWorld()에 접근한 LineTrace와 다르게 ETraceTypeQuery::TraceTypeQuery1 으로 Trace 채널을 접근합니다.
TraceTypeQuery 1 == TraceChannel 0, TraceTypeQuery 2 == TraceChannel 1 , TraceTypeQuery 3 == TraceChannel 2 이런 식으로 접근한다고 생각하시면 되고 해당 함수 인수에 맞게 값을 넣어 코드를 완성합니다.
▣ ETraceTypeQuery 타입을 UEngineTypes::에 접근해서 ConvertToTraceType()함수를 이용해서 열거형을 접근하여 직접 변경할 수 있습니다.
▣ 조절하고 싶은 채널에 콜리전 상태도 지정하고
▣ 컴파일 후 플레이해보면 콜리전 상태에 따라 그리고 채널에 따라 충돌이 되는 걸 확인할 수 있습니다.
▣ USismetSystemLibrary를 접근하면 BoxTrace에 대한 함수도 사용합니다.
아까와 다르게 Box에 크기 및 회전 값을 추가해야 합니다.
▣ 저장 및 컴파일 후 플레이하면 Box를 확인할 수 있습니다.
'[ Unreal5 ] > - 언리얼엔진5 실습' 카테고리의 다른 글
언리얼엔진5 엘리베이터 (2) | 2024.04.26 |
---|---|
언리얼엔진5 c++ ParticleSystem(SpawnEmitterAtLocation) (0) | 2024.04.26 |
언리얼엔진5 Blend Poses Enum (0) | 2024.04.23 |
언리얼엔진5 c++ PlaySound (0) | 2024.04.23 |
언리얼엔진5 c++ HUD Widget (0) | 2024.04.22 |
댓글