본문 바로가기
언리얼엔진

[UE5.1] 멀티에서 아이템 먹고 1번으로 작동시키기

by 송파감자 2023. 5. 4.

수요일 수업 복습을 간단하게 해보고자 한다.
(국비지원 K-디지털트레이닝으로 에티버스러닝에서 2월말부터 수업 듣고 있는 중입니닷)
마지막에 혼자 풀어 본 문제는 다음과 같았다.
 

  • 캐릭터가 전등을 먹으면 캐릭터의 Arrow에 전등이 붙는다
  • 캐릭터가 1번을 누르면 전구는 깜빡깜빡한다
  • 서버에서 깜빡하면 클라이언트에서도 깜빡하고
  • 클라이언트에서 깜빡하면 서버에서도 깜빡하게 만들어라!

 
정답은 없고, 각자만의 방식으로 풀어보았다. 
(스팟라이트 템만 다 같이 만듦)
 
1. 써드퍼슨 머리에 Arrow 컴포넌트를 붙여준다.  여기에 전구를 달아줄 예정!

2.  블루프린트 액터 상속 받아서 만드고 Spotlight 컴포넌트를 붙이고 라이트 컬러와 강도를 수정한다. 각도도 땅바닥쪽으로 수정!

라이트 강도를 높여줘야 한다
강도를 올리면 뷰포트에서 스포트라이트가 보인당

3.  커스텀이벤트 2개를 만들고, 하나는 Run On Server, 하나는 Multicast로 셋팅해준다. 이건 서버에서 실행하면 클라이언트에게도 똑같이 보여주려고 하는 작업

커스텀이벤트 클릭후 디테일 창에서 확인 가능!
디테일 창에서 스팟라이트 컴포넌트 Replicate해줌
짜잔 클라이언트와 서버 둘다 보이져?

4. 써드퍼슨 BP에서 SpotLight변수를 BP_SpotLight 타입으로 생성해준다

변수 스팟라이트를 누르고 디테일창에서 Replicated 설정해준다

나는 써드퍼슨의 캡슐컴포넌트에 오버랩됐을 때 스팟라이트를 붙이는 방법을 써봤다. 물론 스팟라이트에도 박스콜리전을 넣어줘야 한다. 가장 중요한 건!! Set Owner였다. 

이렇게 하면 템은 먹는데, 아예 불이 안보인다. 왜냐? 로케이션을 셋팅해줘야 하기 때문!
로테이션 Relative로 말고 World로 바꿔준

로케이션과 로테이션을 셋팅해줄 것!

그럼에도 문제가 있다.
서버에서만 불이 깜빡거리고 클라에서는 깜빡거리지 않는다
문제가 뭐였는가?
바로 BP_SpotLight 자체에 리플리케이트를 꼭 체크해줘야 된다...위에선 컴포넌트에 리플리케이트를 했었다..

 
이렇게하면 짠! 깜빡깜빡~~

그리고 마지막 참고사항은 Switch Has Authoriy를 넣어서 서버에서 셋오너를 해줘야 한다는 점이다.