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

유니티5 독학하기 그 95.4번째 걸음-레이저 발사시 발생하는 진동의 제거

by 인터넷떠돌이 2018. 11. 2.
반응형

안녕하세요?


지난번 포스팅에서 플레이어 캐릭터가 레이져를 발사하는 것 까지는 좋았는데, 문제는 의도하지 않는 반동이 레이져를 발사 하면서 발생하는 것을 볼 수 있었습니다. 그래서 이 의도하지 않은 반동을 어떻게 제거하는 것이 이번 포스팅에서 올릴 내용입니다.



먼저 플레이어 캐릭터 게임 오브젝트를 유니티5의 계층뷰에서 한번 선택해 보도록 합니다.



여기서 먼저 제가 생각한 가정에는 이 Mass의 값이 2로 너무 작아서 생기는 문제가 아닌가 하는 생각이 들었습니다.



그래서 한번 10으로 올려서 테스트를 해 보았습니다만, 점프만 못하고 반동은 전혀 없어지지 않았습니다.




그래서 다음에는 총알이 발사될 때마다 한번 Collider 2D를 없애보는 것을 해볼까 생각해서 BulletMove.cs 스크립트를 찾아가 보도록 했습니다.



다만 문제가 발생하였는 것이, 너무 많은 코드를 바꿔야 한다는 것이 발생했습니다. 왜냐하면 메모리 풀링에서 이 BoxCollider2D가 발사체가 사라지는 스위치로 되어 있기 때문에, 이를 수정하려면 너무 작업의 양이 많아서 문제가 된다는 생각이 듭니다.



그래서 한번 총구라고 할 수 있는 BulletLocation이라는 게임 오브젝트의 위치를 위 스크린샷과 같이 원래는 플레이어 캐릭터의 가슴 한 가운데 있었는데, 이를 플레이어 캐릭터의 Collier 2D에 부딪치지 않도록 옮기도록 합니다.




이렇게 X축의 좌표를 우측으로 이동을 시켜 보도록 합니다.



다만 이동이 부족해서 좀 더 이동을 시켜야 했습니다. 이렇게 해서야 이제 겨우 의도하지 않은 반동이 사라지는 것을 확인할 수 있었습니다.



위 화면의 GIF파일을 보시면, 이제까지 있었던 의도하지 않았던 반동이 깔끔하게 제거가 된 것을 확인할 수 있었습니다. 이제 여러가지 각종 효과-효과음 같은 것을 집어 넣는 작업이 남아 있는데, 이런 작업을 하고 나서야 적 캐릭터 같은 것을 구현하는 단계에 들어갈 수 있을 것으로 생각이 됩니다.

반응형