1.6.9 버전을 업데이트 한 지 얼마 지나지 않았는데 1.6.10 버전을 또 업데이트하게 되었습니다.
어떤 문제인가 하니, 캐릭터의 물 영역 감지가 작동하지 않는 문제였습니다.
지난 버전 업데이트로 인해 발생한 문제였네요.

버그를 고치면... 또 버그가 생기고...
원래 캐릭터가 물에 들어가면, 물속에선 나름 물 속에 있는 것 처럼 행동했습니다.
비록 수영 모션은 없을지언정, 점프 횟수 제한이 없어지고, 캐릭터도 약간의 부력을 받았습니다.
그런데 그런게 없어졌네요?
그런데 난 이쪽은 아예 손도 안댔는데??

물 영역의 콜라이더. 이 영역에 들어가면 물 속에서처럼 행동하게 됩니다.
어쨌든 원인을 찾아보니, 유니티 타일맵 기능에서 타일맵 콜라이더가 없어지는 문제였습니다.
그런데 이게 또 이상한게 로비 >> 스테이지로 진행하면 물 영역의 콜라이더가 없어지는데
에디터에서 곧바로 스테이지부터 시작하면 물 영역의 콜라이더가 남아있네요? 옘병
그런데 타일맵 콜라이더를 아무리 수정해봐도 고쳐지지가 않네요.
혹시나 해서 콜라이더가 아닌 타일맵 렌더러를 수정해봤더니…
짜잔!
다시 정상적으로 돌아왔습니다!

타일맵 렌더러와 콜라이더. 분명히 콜라이더 문제였는데 렌더러를 건드니까 해결됨...
왜 콜라이더 생성이 안되는 문제가 렌더러를 건드리니까 해결되는 걸까요?
더 웃긴건 렌더러의 인스펙터 변수들 중에서 아무거나 바꿔도 정상적으로 해결된다는 겁니다.
뭐, 어쨌든 해결 방법을 알았으니 해결만 하면 될 일인데…
물이 있는 씬이 수십개네요!
직접 일일이 하기엔 오래걸리겠다 싶어서, 씬을 자동으로 열고 타일맵 렌더러의 변수를 수정해주는 스크립트를 짰습니다. 크~ 천재
그런데 이렇게 했더니 또 안되네요!
결국 일일이 손으로 씬을 하나하나씩 열어서 해걸했습니다.
그래서 근본적인 원인이 무엇이었는지 추측해봤습니다.
아무래도 유니티 에디터 버전을 2018.4 -> 2019.4로 4단계를 건너뛰면서 업데이트했는데
저 버전들 사이에 직렬화 단계에서 콜라이더를 캐싱하는 업데이트가 있던게 아닌가 싶습니다.
그런데 왜 스테이지를 직접 실행하면 콜라이더가 정상적으로 남아있었나.. 하면 그건 모르겠지만. 아무튼 인스펙터니까 직렬화랑 관련된 문제겠지요.
가끔 유니티에 이런게 있더라구요. 직렬화를 전제해두고 작동하는 것들…
직접 선택해서 인스펙터를 보지 않으면 그 전까지는 작동하지 않는다거나 그런 녀석들이 있는데, 이 경우도 그런 것 같습니다.
어쨌든 문제 해결!
그리고 업데이트 하는 김에 인앱 결제 관련 업데이트도 했습니다.
구글에서는 앱이 다시 다운받아졌을때, 기존 결제정보를 불러와서 복원하는 기능이 있습니다.
그 정보로 구매 내역에 따라 아이템을 다시 만들어서 적용해라~ 이런 뜻의 기능인데
그런데 저처럼 이미 서버에 정보를 저장하면 결국 아이템이 중복돼서 지급되게 됩니다.
물론 중복 지급은 안 되게끔 만들어졌지만, 간혹 메세지박스가 나타나는 버그가 있었습니다.
그리고 메세지 박스 안의 문구도 번역이 안돼서 텅 빈 메세지박스만 뜨는 경우가 있었는데요.
일단, 해당 경우엔 메세지 박스도 아예 안뜨게 하고, 문구에도 번역을 추가해줬습니다.
근데 오히려 물 영역 해결하는 것 보다 이게 더 오래걸렸네요.
예전에 코드짤때 뭐가 뭔지 몰라서 막 짜다보니깐 아예 스파게티 코드가 되어버려서…
제 코드를 제가 이해하는데 한참 걸렸습니다.
인디게임 하시다보면 곳곳에 스파게티가 자주 보이죠?
다 자기 코드가 스파게티 코드다~ 하는 의미입니다.