Choose your operating system:
Windows
macOS
Linux
MultiLineTraceByChannel 는 주어진 직선상에 콜리전 트레이스를 수행, 첫 블로킹 히트를 포함해서 그때까지 있었던 모든 히트를 반환하며, 지정된 트레이스 채널에 반응하는 오브젝트만 반환합니다. 실질적으로 무슨 뜻이냐면, 트레이스 시작과 끝 사이에서 트레이스 채널에 지정된 것과 Overlap (오버랩)하는 콜리전 포함 액터 또는 컴포넌트 가 다수 있는 경우, 전부 받게된다는 뜻입니다. 하지만 지정된 트레이스 채널에 걸린 것이 Block (블록)인 경우, 그 항목 하나만 받게 됩니다. 트레이스 채널 오버랩 또는 블록과 관계 없이 모든 항목을 받고자 하는 경우, MultiLineTraceByObject 노드를 사용해야 합니다. MultiLineTraceByChannel 구성 방법은 아래와 같습니다.
단계
-
LineTraceByChannel 예제의 방법대로 트레이스를 구성합니다.
-
LineTraceByChannel 노드를 MultiLineTraceByChannel 노드로 대체합니다.
-
Out Hits 핀을 끌어 놓고 ForEachLoop 노드를 추가합니다.
걸린 액터가 다수이므로, 그 각각에 대해 어떤 작업을 해주고자 합니다 (이 예제에서는 화면에 그 액터들을 출력합니다).
-
Array Element 를 끌어놓고 Break Hit Result 를 추가한 뒤, Hit Actor 에서 Get Display Name (Object) 를 추가한 뒤 Print String 에 연결합니다.
클릭하면 이미지 원본을 확인합니다.
그러면 배열의 액터 중 걸린 것이 화면에 출력됩니다.
결과
피직스 액터 앞에 유리창이 있습니다.
유리창은 디스트럭터블 메시 이며, Trace Response (트레이스 반응)의 콜리전 세팅에서 Visibility (비저빌리티) 를 Overlap 으로, 피직스 액터 (큐브)는 Visibility 를 Block 으로 설정했습니다. 오브젝트를 쏴서 (부서지도록 하고) 관통하여 플레이어나 적도 맞출 수 있도록 하는 상황에 쓸 수 있습니다.