이전글에서 이것까지 한번에 하려했지만 생각보다 뭐가 있어서 이어서 작성한다
이번 목표는 빨간사람(플레이어X)이 특정 공을 바라보면 된다
Get All Actors Of Class with Tag가 핵심이다
Tick 이벤트 = 단순 매 프레임 실행 이벤트
Get All Actors Of Class with Tag = 말그대로 특정태그가 달린 액터녀석들을 찾는다~ 이말이다
Actor Class에서 자신이 찾고자하는 액터의 블루프린트클래스를 선택해준다
Tag 에서 우리가 찾고자하는 액터에 붙여준 태그를 써준다
[태그명은 자신이 맘대로 지정 - 밑에 태그 붙이는 법 있음]
For Each Loop = 배열내의 모든 인덱스를 타겟으로 실행시키는 루프, 예를 들어 인덱스가 3개인 배열이 들어왔다치면
0번 인덱스를 타겟으로 실행 -> 계속 노드를 물고물어 실행이 끝나면 ->
다시 이곳 For Each Loop으로 돌아와서 1번 인덱스를 타겟으로 실행 ····· 이런식이다
ArrayElement에서 각 인덱스 요소를 반환하고
Array Index에서는 인덱스(번호)를 int형으로 반환한다
Completed는 마지막 인덱스까지 모든 반복이 끝났을때 실행되는거 같다
그럼 이제 찾고자하는 액터에 태그를 붙여야한다
원하는 액터를 선택 후 디테일창에서 태그항목을 찾아 + 를 눌러준다
원래 None이라고 되어있는데 이곳이 태그의 이름이다 자신이 원하는대로 작성한다 그럼 완료
다시 블루프린트로 넘어와서
For Each Loop에서 나온 Array Element를 받아와 위치를 구해서 "바라보고싶은 액터를" "바라보는 회전값을" 구해 세팅
설명은 이전글에 되있을듯..?
이 Get All Actors Of Class with Tag는 같은 종류의 액터가 많을시에 태그를 붙여 쉽게 찾을수 있다
태그가 없는 버전인 Get All Actors Of Class 함수도 존재한다 이건 이름대로 모든 액터를 찾는거일듯 하다
근데 Get All Actors Of Class는 연산량이 많아 느려진다고 한다
그래서 저렇게 Tick을 이용하는건 비추천이다 한번 받아와 객체를 저장해서 사용하던지 해야겠다~
참고로 블루프린트가아닌 c++환경에서는 훨씬 괜찮은 함수가 있는거 같더라
'UE4 > 블루프린트 정리' 카테고리의 다른 글
[1] 액터가 플레이어를 바라보게 하기 ( Find Look At Rotation ) (6) | 2021.03.18 |
---|---|
[0] 텍스트를 3D로 렌더링하기 ( TextRender ) (0) | 2021.03.18 |