[Unity]08.포톤2를 활용한 탱크 게임 만들기 #4 - Hp바 만들기

안녕하세요 유랑입니다.



오늘은 HP바를 만들어서 맞으면 에너지가 줄어들고

죽으면 리젠되는 것까지 진행해 보겠습니다.




1. Hp 적용하기



1-1) HP바 만들기



Hp로 쓸 이미지를 만들어 준다음,

Canvas => Panel자식으로 Hp라는 이미지 파일을 만들어 주세요.

그리고 크기는 다음과 같이 적용한 후 Filled라는 이미지 타입을 이용해서

에너지가 줄어드는걸 적용하겠습니다.








HP바 적용이 되셨으면 수동으로 HP 이미지 속성에 있는 Fill Amount 값을 변경하여

HP가 줄어드는지 확인해 주세요^^






1-2) 스크립트 작성



내가 쏜 포탄에 적이 죽었는지 확인하려면 플레이어의 넘버가 필요하겠죠?

이제 이것과 hp적용을 해보겠습니다.

actorNumber를 public으로 선언한 이유는 접속 순서에 따라서 플레이어의 넘버가 바뀔수 있기 때문입니다.






Hp양과 죽었는지 유무 다시 소환되는 시간의 필드값을 만듭니다.









포탄에 맞았을 경우 actorNumber값을 가져와서 어떤 플레이어한테 맞았는지 확인해 준다음

HP를 줄어줍니다.

만약 HP가 0이 될 경우 코루틴을 이용해서 리스폰을 하게됩니다.







실시간 처리를 하기 위해서 포톤트랜스폼 뷰를 사용하지 않고 수동으로 코드를 작성해 주겠습니다.

OnPhotonSerializeView를 사용하면 실시간으로 데이터를 주고 받을수 있습니다.






1-3) 태그 적용



캐논과 탱크 프리팹의 태그값을 다음과 같이 설정하겠습니다.






HP도 물론 드래그앤 드랍을 이용해서 적용해 주세요.





PhotonTransformView는 사용하지 않으므로 비활성화 혹은 삭제해 주세요.

그리고 Move Ctrl 스크립트를 대신 적용해 주겠습니다.

코드 작성을 통해서 Move Ctrl 스크립트는 포톤트랜스폼뷰와 비슷한 기능을 하게됩니다.





게임을 실행시켜보면 hp가 줄어들고,

죽었을 경우 리스폰되는걸 확인이 가능하답니다!!!






1-4) RPC사용 



포탄을 쏘는 방법은 실시간으로 처리해줄 필요가 없다.

그렇기에 RPC를 사용해서 처리해 주자.

RPC는 메소드 호출로써 네트워크에 연결된 모든 플러이에게 사용 가능하다.






포탄을 쐈는지, 누구한테 맞았는지 확인이 가능하다.






2. 마무리



오늘은 HP바를 적용해 보았습니다.

내가 죽었을 경우 리스폰도 가능하기에 다른 게임에 적용하셔도 무난할것 같네요.

오늘도 고생하셨습니다.

감사합니다.




수업자료: https://github.com/YouRang12/-Tistory-Unity---Extra-Photon-




댓글

Designed by JB FACTORY