전체 글

게임 개발을 공부하고 정리한 내용을 포스팅하는 블로그 입니다
얼마 전에 '000[1/4]'라는 제목의 파일을 구글 드라이브에 올렸는데 자꾸 이름이 '000[1:4]'로 슬래시가 콜론으로 대체되는 문제가 있었다.처음엔 그저 귀찮다는 생각만 하며 이름을 하나씩 수정했는데, 오늘 또 대체되길래 수정을 하다가 문뜩 이유가 궁금했다. MacOS를 사용하고 있어서 '인코딩 문제일까?' 하는 의심이 있어서 지피티에게 물어봤다. 결론은 애초에 파일명에 슬래시가 들어갈 수 없기 때문에 비슷한 형태의 특수 문자가 들어갔을 것이고, 구글 드라이브에 업로드할 때 이를 비슷한 다른 특수 문자로 수정했을 가능성이 높다고 한다. 여기에서 파일명에 슬래시가 들어갈 수 없다는 점에서 의문을 가졌는데, 생각해 보니 디렉터리를 표현할 때 슬래시로 구분을 하니까 파일명에 슬래시가 들어가면 이게 폴더..
기존에 땅을 파는 로직을 추가했다. 처음엔 땅을 파는 판정을 할 구의 반지름 내에 들어온 버텍스의 스칼라 값을 가까울수록 값을 많이 변화시키는 방식으로 작성했는데, 그냥 일정한 값만큼 값을 변경하도록 수정했다. 이렇게 하니까 한번 땅을 파거나 메울때마다 얼마나 팔 것인지 값을 조절할 수 있게 되었다. 나중에 장비를 업그레이드 하면 땅을 더 많이 팔 수 있도록 해야할 때 유용해보인다. 마우스를 꾹 누르면 일정 시간마다 땅을 파고 메우는 기능도 추가했다. 이렇게 하니까 제법 아스트로니어와 비슷해보였다.   구 형태로 지형을 편집하도록 구현해보니 왜 아스트로니어가 구 형태가 아닌 원 형태를 채택했는데 알겠다. 구 형태로는 땅을 원하는대로 고르게 파기가 어려웠고 메워도 내가 원하는 형태가 아니다보니 메우고 파기..
프로파일러로 체크해본 결과 평상시에 CPU가 한 프레임을 처리하는데 드는 시간이 5ms가 나오다가 메시를 렌더링 할때마다 16ms가 나오게 되었다. 특히 MeshCollider로 런타임에 충돌체를 생성하는것이 오래 걸리고 있었다.MeshCollider를 모두 꺼버리자 6ms가 줄어들어 10ms가 되었다. 하지만 여전히 Marching Cubes를 연산하느라 5ms정도를 먹고있다.코드를 확인하니 보여줄 필요가 없는 메시는 GameObject를 꺼버리고, 사용하게 되면 켜도록 처리했는데 여기에서 시간을 꽤 먹고있었다. 애초에 Marching Cubes는 스칼라 필드가 모두 1인경우 메시가 없으므로, 이 경우엔 액티브를 끄지 않고, mesh를 클리어 하는 방향으로 수정해보았다.게임 오브젝트를 켜고 끄는 처리만..