기존에는 큐브에 버텍스 값과 인덱스를 넣을 때 배열을 넣어줘야 해서 ToArray 함수로 배열을 따로 만들었었는데, SetVertices, SetTriangles 함수로 넣으면 List를 넣을 수 있어서 넣어줬다.
SetTriangles를 넣을 때 SubMesh라는 파라미터를 넣어야 했는데, 이는 큰 메시 하나가 여러개의 머터리얼로 사용할 때, 어떤 머터리얼을 사용할 것인지를 의미했다. 즉 사용할 머터리얼의 인덱스를 넣어줘야 했는데, 지금은 하나의 머터리얼만 사용해서 0을 넣어줬다.
큐브에 직접 접근해서 값을 수정하는게 좋지 않아 보여서 Generator 스크립트를 추가했다. 이제 무조건 이 Generator를 통해서만 큐브를 생성할 수 있도록 처리했다.
Generator의 경우 컴포넌트일 필요가 없어서 MonoBehaviour를 상속받지 않도록 했는데, 그동안 큐브 인스턴스를 만들 때 SerializedField로 프리팹을 받아왔기 때문에 동적으로 리소스에 접근할 수 있는 방법이 필요했다. 추후에 Addressable 매니저를 추가해서 경로로 받아올 수 있도록 수정해야겠다.
펄린노이즈를 작성했다. GPT에게 설명을 듣고 코드를 어떻게 만드는지 작성을 요청해서 그대로 옮겼다. 옮기는 과정에서 에러가 조금 있었는데, 자잘해서 금방 수정할 수 있었다. 확실히 그냥 이론을 보는거보다 작성된 코드를 보고 이해하는게 더 도움이 되었다.
큐브에 여러개의 머터리얼을 적용하고 싶었는데, 이를 위해 서브 메시의 인덱스를 외부에서 커스터마이징 할 수 있도록 콜백 함수를 추가했다.
'사이드 프로젝트 > Voxel System' 카테고리의 다른 글
[Voxel System] 2025-03-28 실시간으로 땅파고 메우기 (0) | 2025.03.29 |
---|---|
[Voxel System] 2025-03-26 약간의 최적화 (0) | 2025.03.27 |
[Voxel System] - 2025-03-24 Mesh Collider 적용 (0) | 2025.03.25 |
[Voxel System] 2025-03-22 파도 테스트 (0) | 2025.03.25 |
[Voxel System] 시작 (0) | 2025.03.25 |