본문 바로가기

블루프린팅/14. 수학및 트레이스노드

[14.수학및 트레이스노드] 트레이스및 트레이스 기능 소개

트레이스는 정의된 선분을 따라 충돌이 있는지 여부를 테스트하는 데 사용된다. 트레이스는 채널 또는 오브젝트 타입별로 수행할 수 있으며 적중된 단일 또는 여러개체를 반환할 수 있다.

반응하는 방식은 무시, 오버랩, 블록이 될수 있다

 

교재설명이 복잡해 그냥 예제부터 설명드리겠습니다.

1. BP_FirstPersonCharacter 블루프린트를 열어 에디터를 열겠습니다.

2. 매크로+를 클릭해 TraceLocations로 이름을 바꿉니다.

3. 디테일패널에서 벡터타입의 출력파리미터를 2개 추가합니다.  이름은 StartLocation, EndLocation으로 지정합니다.

4. 다음과 같이 노드들을 추가합니다.  현재 카메라 위치를 StartLocation 앞쪽으로 300만큼 떨어져 있는 EndLocation을 반환합니다.

5. 이벤트그래프탭에서 빈곳에 우클릭후 Enter 키보드이벤트를 추가합니다. Pressed 출력핀을 끌어 LineTraceByChannel을 추가합니다.

6. 우클릭후 방금만든 TraceLocations을 추가하고 Start,End를 연결해줍니다. 아래 확장단추를 눌러 디버깅을 위해 DrawDebugType을 ForDuration으로 하고 아래 DrawTime을 0.5로 해줍니다.

7. Break Hit Result를 추가해줍니다. HitActor에서 CastToBlueprint_WallSconce를 추가해야하지만 보이지 않아.  Contents>StarterContent>Bluprints폴더에 있는 레벨을 추가한후 검색하니 추가할수 있었다. 형변환을 추가하는 이유는 lueprint_WallSconce가 아니면 다음 노드를 진행할수 없게 하기 위해서다.

8. 교재는 형변환후 ToggleVisibility를 추가하면 엔터키를 켜서 맞추면 불이 들어와야하는데 안들어와 명중하면 ActorPosition을 50씩 올려주는 노드를 추가했는데 여기까지는 잘되었다. 현재액터의 위치를 불러 Z만 50을 더해주고 다시 ActorLocation을 SET해주면 되는 간단한 로직이다.

9. 컴파일후 실행한다. 아래보이는 등을 화면 가운데 놓고 엔터키를 누르면 디버그용 빨간색 블록이 잠시 나타난다. 정확히 맞으면 등이 50씩 위로 올라간다 원래 등이 토글(들어와야) 해야하는데 잘안되었다.