안녕하세요?
지난번 포스팅에서 레이져가 발사되기는 되었는데, 이상하게 플레이어 캐릭터가 처음 시작한 위치에서만 발사가 되고, 그게 플레이어 캐릭터를 따라서 움직이지 않는 현상이 일어났습니다. 그래서 이번 포스팅에서 그 문제를 해결하기 위한 좌우충돌을 이야기 할까 합니다.
우선 스크립트에서 무언가 에러가 난 것이 아닌가 하는 생각이 들어서, 일단 자료를 찾아보니, Transform과 transform이 차이가 있다는 이야기를 찾을 수 있었습니다.
그리고 또 찾아본 결과, 위 스크린샷의 내용처럼 this.transfrom.position을 이용해서 한번 도전을 해 볼까 합니다.
그런데 일단 비주얼 스튜디오 상에서 아예 에러가 생기는 것을 확인할 수 있었습니다. 그래서 이렇게 시도한 것은 그다지 좋은 시도는 아니라는 것을 알 수 있었습니다.
그래서 일단 Body만 프리펩화 되어 있기에, 아예 Player 게임 오브젝트 자체를 프로젝트뷰로 끌어와서 프리펩화 시키도록 해 봅니다.
그리고 위 스크린샷에서 붉은색 동그라미를 친 곳과 같이 Apply 버튼을 눌러 보았습니다.
아무리 해도 상황이 나아지지 않자, 이제는 BulletLoaction게임 오브젝트를 -90도 기울인 것이 문제인가 싶어서 일단 -90도 기울기를 했는 것을 해제했습니다.
그리고 다시 총알 프리펩으로 가서 1st_Bullet을 선택하도록 합니다.
1st_Bullet에서 위 스크린샷과 같이 -90도로 기울어 지도록 만들어 줍니다.
그러자 이번에는 총알이 위로 올라가는 것을 볼 수 있었습니다.
그래서 BulletMove.cs로 가서, 위 스크린샷과 같이 up이라고 되어 있는 부분을 right로 다시 바꾸어 주도록 합니다.
이제 방향은 잡았는데, 문제는 Destroy()함수를 호출이 되지 않습니다. 아무래도 코드상 에러가 있어서 그냥 if문으로 비교하는 것은 무리일 듯 해서, 하는 수 없이 코루틴을 사용해서 0.2초가 있으면 자동으로 총알이 사라지도록 만들어 주었습니다.
이제서야 총알이 제가 원하는 데로 나가는 것을 볼 수 있었습니다. 다만 여기까지 오는데 수 많은 시행착오가 있었는데, 이전에 했던 패럴렉스 스크롤에 비해서는 시간이 덜 걸렸다는 것을 알 수 있습니다. 다만 이런다고 해서 문제가 없는 것이 아니라 너무 자주 Destroy()함수를 호출하기 때문에 이는 예상치 못한 렉을 유발할 수 있다고 합니다. 그래서 이 방법을 해결한 방법으로 다음 포스팅 부터 시도를 할 것을 약속 드리며, 이만 포스팅을 마치도록 하겠습니다.
'유니티5 독학 & 게임 제작' 카테고리의 다른 글
유니티5 독학하기 그 95.2번째 걸음-메모리 풀링의 발사체 적용 part2 (0) | 2018.10.28 |
---|---|
유니티5 독학하기 그 95.2번째 걸음-메모리 풀링의 발사체 적용 part1 (0) | 2018.10.27 |
유니티5 독학하기 그 95번째 걸음-총알 발사의 구현part4 (0) | 2018.10.26 |
유니티5 독학하기 그 95번째 걸음-총알 발사의 구현part3 (0) | 2018.10.26 |
유니티5 독학하기 그 95번째 걸음-총알 발사의 구현part2 (0) | 2018.10.25 |