본문 바로가기
유니티5 독학 & 게임 제작

유니티5 독학하기 그 95번째 걸음-총알 발사의 구현 part1

by 인터넷떠돌이 2018. 10. 25.
반응형

안녕하세요?


이번에는 연습용 게임에서 총알을 발사하는 작업을 하려고 합니다. 그런데 처음에는 다른 사람들이 올려놓은 정보들을 보고서 간단하게 구현이 될 줄 알았는데, 생각보다 일이 어려번 꼬여서 하는 수 없이 여러개의 파트로 나누어서 올려야 할 정도로 이래저래 분량이 늘어나게 되었습니다. 이번 포스팅에서는 그 첫번째 작업을 포스팅 하고자 합니다.



일단 총알이라고 해야 할까요? 레이저라고 해야 할까요? 아무튼 유니티5에서 발사체를 구현하는 과정을 만들기 위해서 첫 단계로 그래픽 에셋을 준비해야 하는데, kenney.nl에 가서 위 스크린샷처럼 Space Shooter Redux에서 적당한 이미지를 가지고 오기로 했습니다.



일단은 적당해 보이는 그래픽 스프라이트를 가지고 와서, 유니티5상의 Sprites폴더 안에다가 집어 넣도록 해 줍니다.



그리고 나서 유니티5의 계층뷰에서 위 스크린샷처럼 새로운 게임 오브젝트를 생성하도록 합니다.



그리고 나서 이름을 1st_Bullet이라고 지어 주도록 합니다.




그리고 나서 위쪽을 향해 있는 레이저를 -90도로 돌려서, 옆으로 누워있는 횡스크롤에 맞도록 바꾸어 줍니다.



이제 그래픽이 씬뷰에서 완성된 모습입니다. 이런 모습으로 완성을 시키는 것 까지는 성공했습니다.



일단 부모 오브젝트로 BulletSystem이라고 이름을 지어 주도록 하고, 그 자식 오브젝트로 1st_Bullet이라고 지어 주었습니다.



일단 씬뷰에서 좌표를 위 스크린샷처럼 모두 (0,0,0)으로 찍어 주도록 합니다.




그리고 나서 위 스크린샷처럼 Prefabs폴더로 드레그 앤 드롭을 해서, 프리펩화 시켜 주도록 합니다.



그리고 나서 쓸모가 없어진 게임 오브젝트를 유니티5의 계층뷰에서 제거 하도록 합니다.



그리고 나서 다음으로는 기존의 Player게임 오브젝트를 새로 생성한 빈 게임오브젝트의 자식 오브젝트로 만들어 주도록 합니다.



다음으로는 위 스크린샷처럼 Player게임 오브젝트의 인스펙트 뷰로 가서, PlayerController.cs 스크립트 컴포넌트를 복사 하도록 합니다.




그리고 유니티5의 계층뷰로 가서 Player의 부모 오브젝트인 빈 게임 오브젝트를 선택하고 나서



먼저 위치를 기존의 Player게임 오브젝트와 동일한지 확인을 하고, 그리고 나서 PlayerController.cs 컴포넌트를 붙여넣기 해 주도록 합니다.



그리고 기존의 Player게임 오브젝트에 있던 PlayerController.cs 컴포넌트를 제거해 주도록 합니다.



그리고 기존의 Player는 Body로 이름을 바꿔 주도록 하고, 부모 오브젝트는 Player로 이름을 바꾸어 주도록 합니다.



그리고 나서 위 스크린샷처럼 Body게임 오브젝트의 자식 오브젝트로 빈 게임 오브젝트를 생성하도록 합니다. 이렇게 하는 것으로 이제 part1의 부분을 마치도록 하겠습니다. 모든 내용을 다 올리려면 포스팅의 내용이 너무 길어져 버리는 문제가 있기 때문에, 여기서 자르도록 하며, 나머지 부분은 이어서 연속해서 올리는 포스팅에서 계속 보여드릴 것을 약속 드립니다.

반응형