[Unity]06.포톤2를 활용한 탱크 게임 만들기 #2 - 탱크 공격 구현하기

안녕하세요 유랑입니다.



오늘은 포탑을 움직여 보고 공격도 구현해 보겠습니다.

당연히 네트워크 부분도 진행할게요.




1. 포탑



1-1) 터렛 움직이기



왜 밑에 있는 그림을 보여드리냐고 의아해 하실텐데

탱크의 공격과 움직임에는 아크탄젠트가 꼭 필요합니다.

수학적으로는 어려운 부분이지만, 유니티 내장 함수에서 구현을 해주니 따라 해보겠습니다.






지난 번에 만든 터렛 스크립트에 코드를 추가하겠습니다.

레이케스트가 터레인과 부딪친쪽으로 터렛이 움직이는 코드입니다.

저번에 터레인에게 FLOOR 레이어를 적용했는데 이 부분 때문에 적용하였습니다.





게임을 시작하면 마우스 방향으로 터렛이 움직이는걸 확인 가능합니다.






1-2) 캐논 움직이기



마우스 휠을 이용해서 캐논을 위아래로 움직여 보겠습니다.

코드상은 안어려우나 'Mouse ScrollWheell'이라는 문구가 생소하실거에요.






탱크의 캐논에 해당 스크립트를 적용한 후 실행 시켜보세요.

마우스 휠을 움직이면 캐논이 위아래로 움직입니다.








1-3) 포탄 만들기



발사할 포탄을 만들텐데 빈오브젝트를 생성하여 이름을 Cannon이라고 바꿔주세요.

그리고 Rigidbody와 Collider는 다음과 같이 구성하겠습니다.






포탄이 날라갈 때 불빛이 따라 다니죠?

Trail Renderer를 이용해서 구현하겠습니다.

머티리얼과 시간 그리고 넓이 등을 조절해 보세요.







포탄이 생성되고 앞으로 날라가야 겠죠?

해당 스크립트를 포탄 즉 Cannon 오브젝트에 적용하겠습니다.





이상이 없으면 프리팹으로 만들어 주세요^^






1-4) FirePos 만들기



포탄이 발사 될 위치를 만들겠습니다.

캐논의 자식으로 빈오브젝트를 만들고, 이름을 FirePos로 바꿔주세요.






포탄을 발사할 스크립트 입니다.

탱크에 해당 스크립트를 넣어주고, 다음과 같이 작성해 주세요.

마우스 왼쪽 버튼을 누르면 firePos에 포탄이 생성됩니다.





캐논과 FirePos를 스크립트에 넣어주고 실행시켜 보세요.





저는 포탄의 속도와 렌더러 크기를 변경하고 게임을 실행시켰습니다.






1-5) 탱크 포톤 설정하기



탱크 오브젝트에 PhotonView와 PhotonTransformView 스크립트를 추가해 주세요.

실시간으로 정보가 공유됩니다.

트랜스폼뷰는 공유하고 싶은 정보면 체크해 주세요.










탱크, 터렛, 캐논에 해당 스크립트를 넣어주었으면 탱크를 프리팹으로 만들어 줍니다.

포톤은 Resources 폴더 안에 있는 프리팹만 인식이 됩니다.






1-6) 방 만들기



빈 오브젝트를 생성한후 이름과 스크립트를 변경하고 추가해 줍니다.

해당 스크립트는 포톤 서버에 접속하고, 방 그리고 탱크까지 만들어 줍니다.






gameVersion을 통해서 버전이 맞는 사람들끼리 서버를 공유합니다.

userId는 말그대로 들어갔을 때 닉네임이라고 보시면 됩니다.

무료버전이기 때문에 맥스 인원은 20명으로 설정해 주었습니다.





스크립트를 작성 후 PhotonServerSettings를 다음과 같이 설정해 주면,

실시간으로 서버가 어떻게 만들어 지는지 콘솔창에서 확인 가능합니다.







최종적으로 다음 코드를 추가하면 방을 만들고, 탱크까지 해당 위치에 생성해 줍니다.







빌드를 하여 윈도우창과 유니티 창에서 네트워크 연동이 되는지 확인해 보겠습니다.










2. 마무리



오늘은 포탑과 포탄을 만들어 보고, 네트워크까지 설정해 보았습니다.

이제 네트워크가 되는걸 확인하니 신이나는데요. 

다음 시간에는 네트워크 연동을 위한 코드 추가를 하겠습니다.

오늘도 고생하셨습니다.

감사합니다.




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



댓글

Designed by JB FACTORY