[Unreal]11.액터 심화과정 #4 - 이벤트

안녕하세요 유랑입니다.



오늘은 이벤트를 이용해서 플레이어가 횃불을 켰다 껐다 할 수 있도록 구현해 보겠습니다.




1. 이벤트



1-1) 이벤트 만들기 - ㉠Custom Event 



플레이어가 직접 이벤트를 만들어보겠습니다.

횃불 블루 프린트를 실행시켜 주세요.






이벤트 그래프 빈공간에서 Custom Event추가를 눌러주세요.






1-2) 이벤트 만들기 - ㉡TurnOff



커스텀 이벤트의 이름을 TurnOff로 변경한뒤 

파티클 시스템, 오디오, 라이트를 드래그하여 이벤트 그래프에 옮겨 주세요.




 

TurnOff를 통해서 불을 끌텐데요.

Deactivate는 비활성화 시키는 함수입니다.

파티클, 오디오, 라이트를 각각 연결해 주세요.

라이트는 Set Visibility를 호출해 주어야 합니다.





만든 커스텀 이벤트를 최종적으로 BeginPlay 이벤트에 연결해 주어 호출시켜 주겠습니다.

BeginPlay는 게임이 시작되자 마자 호출되는 이벤트입니다.





이렇게 불이 꺼지게 됩니다.






1-3) 이벤트 만들기 - ㉢TurnOn



똑같이 커스텀 이벤트를 추가한 다음에 TurnOn이라고 이름을 변경해 주세요.

마찬가지로 파티클, 오디오, 라이트를 드래그하여 추가해 주겠습니다.






Activate는 활성화 시켜주는 함수입니다.

라이트는 Set Visibility를 연결해 주세요.

Visibility는 꼭 체크해 주시고 Children은 자식까지 적용할건지를 의미합니다.





TurnOn을 적용할텐데 Delay를 이용해 게임이 시작되면 횃불이 꺼지고 2초 뒤에 켜지도록 하겠습니다.








1-4) 키 입력 - ㉠키보드 이벤트



이번에는 키 입력을 통해서 횃불을 꺼보겠습니다.

캐릭터 블루프린트를 켜주세요.






이벤트 그래프 빈 공간에 키보드 G 입력을 받는 이벤트를 추가해 주세요.






1-5) 키 입력 - ㉡OverlapActors



해당 키를 입력하면 콜리전 정보를 가져와 플레이어 주변에 횃불이 있는지 확인할거에요.

Sphere OverlapActors를 추가해 주겠습니다.






스피어의 위치와 반경을 정해줘야 할텐데요.

스피어의 위치는 캐릭터의 위치로 설정해 주겠습니다.

GetActorLocation을 이용해 캐릭터의 정보를 넣어주겠습니다.

반경은 200으로 설정해 주세요.





Object Types는 배열 만들기를 연결해 주세요.





배열 만들기의 타입은 WorldDynamic으로 설정해 주겠습니다.

자세한 내용은 다음에 깊게 알려드리겠습니다.





Actor Class Filter는 근처에 있는 액터정보만 가져오게 할 수 있습니다.

BP_Torchlight을 선택해 주세요^^





이제 주위에 해당 액터가 하나라도 있으면 true, 아니면 false 값이 출력되는데요.

if(Branch)문을 연결해 줄게요.





이 때 근처에 있는 횃불이 몇개인지 확인할 수가 없습니다.

ForEachLoop를 이용해서 배열값을 받아와 하나라도 있으면 해당 함수가 실행되도록 만들어 줄게요!!







마지막으로 배열에 있는 요소가 횃불이면 꺼주겠습니다.

형변환을 통해서 횃불인지 아닌지 비교할 수 있습니다.








2. 마무리



오늘은 이벤트도 만들어 보고 키를 입력하여 횃불까지 꺼보았습니다.

언리얼에서 제공하는 이벤트 외에도 직접 만들 수도 있다니 신기하네요.

오늘도 고생하셨습니다.

감사합니다.




수업자료: https://github.com/YouRang12/-Tistory-Unreal---Basic





댓글

Designed by JB FACTORY