본문 바로가기

레이져7

유니티5 독학하기 그 95.4번째 걸음-레이저 발사시 발생하는 진동의 제거 안녕하세요? 지난번 포스팅에서 플레이어 캐릭터가 레이져를 발사하는 것 까지는 좋았는데, 문제는 의도하지 않는 반동이 레이져를 발사 하면서 발생하는 것을 볼 수 있었습니다. 그래서 이 의도하지 않은 반동을 어떻게 제거하는 것이 이번 포스팅에서 올릴 내용입니다. 먼저 플레이어 캐릭터 게임 오브젝트를 유니티5의 계층뷰에서 한번 선택해 보도록 합니다. 여기서 먼저 제가 생각한 가정에는 이 Mass의 값이 2로 너무 작아서 생기는 문제가 아닌가 하는 생각이 들었습니다. 그래서 한번 10으로 올려서 테스트를 해 보았습니다만, 점프만 못하고 반동은 전혀 없어지지 않았습니다. 그래서 다음에는 총알이 발사될 때마다 한번 Collider 2D를 없애보는 것을 해볼까 생각해서 BulletMove.cs 스크립트를 찾아가 보도.. 2018. 11. 2.
유니티5 독학하기 그 95.2번째 걸음-메모리 풀링의 발사체 적용 part2 안녕하세요? 지난번 포스팅에서 메모리 풀링을 적용 하려고 하는데, 내용이 너무 길어서 중간에 끊었습니다. 이번 포스팅에서도 모든 내용을 다 포스팅 할수는 없어서 중간에 끊겠지만, 그래도 될 수 있는한 이해하기 쉽도록 하면서 이러저러 했던 시행착오를 기록해 보도록 하겠습니다. 우선 지난번에 만든 BulletCreate.cs 스크립트의 GunFire()메소드에서 위 스크린샷처럼 for문을 삽입해 주도록 합니다. 이 for문은 메모리풀에 저장할 최대한의 발사체-이 경우에는 레이져 빔의 갯수인데, 레이져 빔의 갯수 이상은 만들어 지지 않도록 해주는 역할을 할 수 있다고 볼 수 있습니다. 다만 한번 발사 명령을 내렸을 때, 10개가 최대한도면 모두 10개 발사되는 일이 없도록 for문에서 break; 가 있는 것.. 2018. 10. 28.
유니티5 독학하기 그 95.2번째 걸음-메모리 풀링의 발사체 적용 part1 안녕하세요? 지난번 포스팅에서 어떻게 발사체로 레이져가 나가는 것을 구현하는 데 성공했지만, 여기서 하나 심각하게 만들 수도 있다는 문제가 하나 있습니다. 일반적인 방법에서는 총알과 같은 발사체를 발사하는 명령이 내려지면, initiate()함수를 이용해서 총알을 생성해서 날리다가 일정 시점이 되면 Destroy()함수를 호출해서 생성된 발사체를 제거하라는 명령을 내려줍니다. 그런데 듣자니 이 유니티의 스크립트에서 사용하는 C#이라는 언어에서는 '가비지 컬렉터 = CG'라는 것이 있는데, 제가 알아본 바로는 물체가 제거되면 메모리에서 자동으로 제거해 주는 장치라고 합니다. 문제는 Destroy()함수가 호출이 되면, 바로 직후에 CG가 불려오는데, 이 CG를 너무 많이 호출하면 시스템에 많은 부하가 걸려.. 2018. 10. 27.
유니티5 독학하기 그 95번째 걸음-총알 발사의 구현part5 안녕하세요? 지난번 포스팅에서 레이져가 발사되기는 되었는데, 이상하게 플레이어 캐릭터가 처음 시작한 위치에서만 발사가 되고, 그게 플레이어 캐릭터를 따라서 움직이지 않는 현상이 일어났습니다. 그래서 이번 포스팅에서 그 문제를 해결하기 위한 좌우충돌을 이야기 할까 합니다. 우선 스크립트에서 무언가 에러가 난 것이 아닌가 하는 생각이 들어서, 일단 자료를 찾아보니, Transform과 transform이 차이가 있다는 이야기를 찾을 수 있었습니다. 그리고 또 찾아본 결과, 위 스크린샷의 내용처럼 this.transfrom.position을 이용해서 한번 도전을 해 볼까 합니다. 그런데 일단 비주얼 스튜디오 상에서 아예 에러가 생기는 것을 확인할 수 있었습니다. 그래서 이렇게 시도한 것은 그다지 좋은 시도는 .. 2018. 10. 27.