유니티5 독학 & 게임 제작947 유니티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. 유니티5 독학하기 그 95번째 걸음-총알 발사의 구현part4 안녕하세요? 지난번 포스팅에서 어떻게 총알이 발사는 되는데 제자리에만 머무는 것에만 있는 것을 보여 주었습니다. 그래서 이번 포스팅에서는 본격적으로 발사체가 원하는 방향으로 발사시켜 보도록 하는데, 이런저런 시행착오가 있어서 이를 포스팅 하고자 합니다. 작업을 하기 위해서 이번에는 BulletMove.cs라는 스크립트를 Scripts폴더에서 생성을 하도록 합니다. 우선 위 스크린샷처럼 여기서 진짜로 총알의 속도와, 총알이 얼마만큼 이동을 했으면 사라질 것인지 변수로 선언을 해 주고, 다음으로는 Translate() 함수를 써서 원하는 방향으로 가도록 한 다음에, 총알의 좌표가 bulletDisapparPoint보다 더 크면 Destroy()함수를 호출해 주도록 합니다. 처음에는 일단 BulletLocat.. 2018. 10. 26. 유니티5 독학하기 그 95번째 걸음-총알 발사의 구현part3 안녕하세요? 지난번 포스팅에서 예상치 못한 에러가 발생해서 이걸 수정하느라고 진땀을 흘렸는데, 이번 포스팅에서는 이제서야 총알이라고 해야 할까요? 레이져라고 해야 할까요? 하여간 플레이어 캐릭터가 발사체를 발사하는 데 까지는 성공했고, 그 내용을 포스팅 하고자 합니다. 이전에 생성을 했던 Body의 자식 오브젝트인 빈 게임 오브젝트의 이름을 BulletLocation이라고 지어 주도록 합니다. 다음으로는 이전에는 BulletFireLine이라고 되어 있던 곳에 총알의 프리펩을 넣었는데, 이를 방금 만들어 주었는 게임 오브젝트를 넣어 주도록 합니다. 유니티5에서 플레이를 눌러서 게임을 실행시켜 보면, 위 스크린샷처럼 레이져가 위로 향하면서 제자리에서 생성이 되는 것을 볼 수 있습니다. 일단 이 방향부터 바.. 2018. 10. 26. 이전 1 ··· 189 190 191 192 193 194 195 ··· 237 다음