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

유니티5 독학하기 그 95.2번째 걸음-메모리 풀링의 발사체 적용 part3

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

안녕하세요?


그리 긴 작업이 아니기는 했지만, 그래도 어느정도 하느라 애를 먹었던 작업인 메모리 풀링을 적용해서 발사체-레이져를 발사하는 작업을 이제 마무리 할 때가 왔습니다.



먼저 유니티5의 계층뷰에서 Player 오브젝트를 선택해 보도록 합니다.



그리고 나서 메모리 풀에 얼마나 많은 발사체-여기서는 레이져의 프리펩을 만들어 줄 것이냐를 정합니다. 일단 10으로 저는 정해서 입력을 해 주었습니다.



그런데 문제가 발생했습니다. 어떻게 된 것인지 레이저가 아랬쪽 방향으로 발사가 되는 것을 확인할 수 있었습니다.




그래서 어디가 문제인가 봤더니, 제가 조작을 하면서 쓸데없이 BulletSystem의 회전을 -90 한번 더 시킨 것이였습니다. 그래서 여기는 0으로 만들어 놓았습니다.



이제서야 제가 원하는 방향으로 레이져가 나아가는 것을 볼 수 있었으며, 제대로 Box Collider 2D가 작동을 하는 지를 알아 보았는데, 위 스크린샷에서 보여지는 것과 같이 처음에는 세로로 긴 박스 형태로 만들었지만, 제대로 -90도 회전을 했는 것을 볼 수 있었습니다.



그런데 한가지 문제라면 문제가 생겼습니다. 발사체에 충돌 판정이 있는 것을 지정해 놓았더니, 레이저를 발사할 때마다 플레이어 캐릭터가 뒤로 밀리는 문제가 발생하는 것을 볼 수 있었습니다. 그래서 이 문제는 지금 당장은 해결할 수 없으니, 일단 뒤로 미루도록 하고, 다음 단계를 진행하도록 했습니다.




우선 총알의 발사 딜레이 시간을 극단적으로 더 줄이도록 했습니다.



그러자 한번에 한발씩 나가던 레이져가 여러발 연속으로 나가는 것을 볼 수 있었습니다.



그리고 위 스크린샷처럼, 미리 유니티5의 계층뷰에서 여러개의 발사체 클론을 만들어 주고서 필요할 때만 활성화를 시키는 것을 볼 수 있었습니다. 이를 통해서 메모리 풀을 이용한 발사체의 구현이라고 해야 할까요? 최대한으로 성능을 향상 시킬 수 있는 방법을 사용해 보는데 성공했습니다. 하지만 여기서 나온 문제인 발사를 할 때 마다 뒤로 밀리는 반동이라고 해야 할 문제는 분명이 해결해야 할 문제인데, 아마도 잠시간은 이 문제를 해결하는 데 많은 시간을 소모할 듯 합니다.

반응형