인프런 커뮤니티 질문&답변

thanatos님의 프로필 이미지
thanatos

작성한 질문수

언리얼 엔진4 입문 (C++ 기반)

충돌 기초

비헤이비어트리질문

작성

·

283

0

targeton이 한번대면 게속 targeton을 타게대는데

거리멀어지면 target을 null로 줘서 targetoff를 타게하고싶으면

c++로 task를 만들어서 하는방법만 있나요???

한코드2줄이면 만들수있는 task라 이렇게 하나하나 만들어야하는게 맞나 궁금해서 질문남깁니답

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

Unreal Engine의 비헤이비어 트리에서 “TargetOn”이 한 번 대면 계속 해당 상태를 유지하는 것을 변경하고 싶으시군요. 만약 타겟과의 거리가 멀어지면 “TargetOff” 상태로 전환하고 싶다면, C++로 커스텀 태스크를 만드는 것 외에도 비헤이비어 트리 내에서 조건(Decorator)을 추가하여 처리할 수 있습니다.

“TargetOn” 노드에 거리를 체크하는 컨디션(Decorator)을 추가하여 타겟과 일정 거리 이상 멀어졌을 때 노드가 실행되지 않도록 설정하면 됩니다. 이렇게 설정하면 타겟과의 거리가 멀어지면 자동으로 “SearchTarget” 쪽의 행동을 타게 할 수 있습니다.

만약 더 세밀한 조정이나 특정 조건에서만 타겟과의 연결을 끊고 싶다면, C++에서 커스텀 조건을 만들어서 적용하는 것이 좋습니다. 말씀하신 것처럼 비교적 단순한 태스크일 경우 작은 코드 조각으로 구현 가능하지만, 이 작업을 통해 더욱 강력하고 재사용 가능한 태스크를 만들 수 있는 장점이 있습니다.

다음 이미지를 참고하시면 도움이 될 것 같습니다.
비헤이비어 트리 확인

도움이 더 필요하면 언제든지 질문해주세요. 감사합니다, thanatos님.

thanatos님의 프로필 이미지
thanatos
질문자

감사합니다

thanatos님의 프로필 이미지
thanatos

작성한 질문수

질문하기