이제는 강의 없이 하루종일 팀 프로젝트 작업을 하게 됐다.
그래서 작업 내용을 자세히 쓸 수는 없지만, 가볍게 기록해보려고 한다.
아이템 스폰
지금 하고있는 작업은 아이템을 다양한 위치에서 스폰하는 기능이다.
기존에는 땅을 팠을 때 전방에만 아이템이 스폰되는데, 땅을 팠을 때 드러나는 다양한 위치에서 아이템이 스폰되도록 개선하려고 한다.
이 때의 조건은 1. 땅 파기 전 공기였던 영역에 스폰되지 않는다. 2. 땅 파고나서 드러난 땅에 아이템의 일부가 노출된다.
따라서 원래부터 공기였던 영역과 Dig 이후 새롭게 파인 영역을 알아내야 한다.
1. DiggerSystem의 Density 사용
현재 땅파기 시스템에서는 Density 배열을 사용해 각 청크 내의 밀도를 계산하고, 메쉬로 그려내고 있다. 따라서 해당 Density 값을 꺼내서 사용하면 나도 공기였던 영역과 새롭게 파인 영역을 알 수 있다.
하지만 땅파기의 경우 멀티 플레이어가 됐을 경우 성능 부하가 커질 수 있기 때문에 고도화된 에셋을 사용하기로 했다.
이 에셋에서는 내부 데이터를 외부에서 사용할 수 없도록 되어있기 때문에 교체한 이후를 생각하면 새로운 방법을 찾아야 한다.
2. PreScan, PostScan
땅파기 전과 후에 한번씩 충돌체크를 해서 파려는 위치 근처의 지형 정보를 기록하는 방식이다.

이런 식으로 DigPosition 근처가 땅인지 공기인지 판별하고, 땅판 이후에 다시 판별하는 방식을 사용했다.
하지만 현재 땅이 쓰고있는 Mesh Collider의 경우, 땅이 표면만 체크가 가능하고 땅의 내부를 땅이라고 체크할 수 없기 때문에 실패했다.
3. Chunk Data 생성
Digger 쪽에서 사용하는 Density와 별개로, 아이템 쪽에서 사용하기 위한 데이터를 따로 기록하는 방식이다.
어차피 스폰된 아이템을 청크별로 기록하기 위해 Data 클래스를 만들려던 참이었어서, 지형 정보까지 함께 기록하려고 한다.
하지만 Chunk가 생성될 때 해당 데이터 스크립트를 같이 붙일 수 있는지 알아봐야 하기때문에 아직 테스트 중이다.