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

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

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

안녕하세요?


지난번 포스팅에서 어떻게 총알이 발사는 되는데 제자리에만 머무는 것에만 있는 것을 보여 주었습니다. 그래서 이번 포스팅에서는 본격적으로 발사체가 원하는 방향으로 발사시켜 보도록 하는데, 이런저런 시행착오가 있어서 이를 포스팅 하고자 합니다.



작업을 하기 위해서 이번에는 BulletMove.cs라는 스크립트를 Scripts폴더에서 생성을 하도록 합니다.



우선 위 스크린샷처럼 여기서 진짜로 총알의 속도와, 총알이 얼마만큼 이동을 했으면 사라질 것인지 변수로 선언을 해 주고, 다음으로는 Translate() 함수를 써서 원하는 방향으로 가도록 한 다음에, 총알의 좌표가 bulletDisapparPoint보다 더 크면 Destroy()함수를 호출해 주도록 합니다.



처음에는 일단 BulletLocation 게임 오브젝트에 BulletMove를 컴포넌트로서 붙였습니다만, 아무런 효과가 없어서 도로 컴포넌트를 삭제해야 했습니다.




그리고 예상치 못한 에러가 뜨는데, 알고보니 여기서도 역시 줄끝을 윈도우로 설정해 주지 않아서 생기는 에러였습니다.



다시 유니티5로 돌아와서 프로젝트 뷰에서 위 스크린샷처럼 BulletSystem이라는 총알의 프리펩을 선택하도록 합니다.



그리고 이 프리펩에다가 BulletMove.cs를 컴포넌트로서 추가시켜 주는 것 이었습니다. 이걸 몰라서 정말 헤메었던 것 이었습니다.




그러고도 총알이 이상하게 아랫쪽을 폭격하는 것 마냥 내려가서 일단 BulletMove스크립트로 다시 가서, right라고 되어 있는 것을 up으로 바꾸었습니다.



그리고 사라지는 거리를 화면 안에서 사라지도록 만들기 위해서, 일단 BulletDisappearPoint를 11로, 유니티5의 인스펙트에서 맞추어 주었습니다.



마지막으로 BulletLocation 게임 오브젝트에서 -90도로 회전시키면서 실수로 Z축의 좌표를 건드렸는데, 이걸 원상 복구 시켜서 일단은 앞으로 나오는 듯한 레이져가 나왔습니다. 하지만 어떻게 된 것인지 레이저가 플레이어 캐릭터의 위치에서 발사되지 않고, 게임 시작시 위치한 지점에서만 발사가 되는 문제가 발생했습니다. 다음 포스팅에서는 이 문제까지 해결을 하도록 해 보겠습니다.

반응형