Проблема в десереализации файла с объектами

В JSONе лежат Чанки, в которых лежат кубы. Проблема в том что при итерации каждого чанка отдельно загружаются кубы из всех чанков, которые были в JSON, из-за чего кратно возрастает число появляющихся блоков Пример: В JSON лежит 2 чанка с 4096 кубов в каждом. При загрузке считываются 8192 куба, т.е. берутся и те кубы, до чьего родительского чанка очередь не дошла, а когда дойдёт, то снова будут взяты абсолютно все кубы. Долго в коде копаюсь, а ошибку найти не могу.

Десереализация содержимого Происходит в следующем коде:

using System.Collections.Generic;
using UnityEngine;
using Newtonsoft.Json;
using System.IO;
//... Класс MonoBehaviour и voidы не вставлял



    public class BlockSerializer
    {
        public string BlockName { get; set; }
        public int PositionX { get; set; }

        public int PositionY { get; set; }

        public int PositionZ { get; set; }
    }

    public class ChunkSerializer
    {
        public string Chunk { get; set; }
        public int ChunkPositionX { get; set; }
        public int ChunkPositionY { get; set; }
        public int ChunkPositionZ { get; set; }
        public List<BlockSerializer> BlocksInChunk { get; set; }
    }
            WorldBlocksData = File.ReadAllText($@"Путь к JSON-файлу");
            List<ChunkSerializer> Chunks = JsonConvert.DeserializeObject<List<ChunkSerializer>>(WorldBlocksData);
            Debug.Log($"Загружается чанков: {Chunks.Count}");

            foreach (var CurrentChunk in Chunks)
            {
                GameObject TargetChunk = Instantiate(Chunk, 
                    new Vector3(CurrentChunk.ChunkPositionX, CurrentChunk.ChunkPositionY, CurrentChunk.ChunkPositionZ), new Quaternion(0, 0, 0, 0));
                TargetChunk.name = CurrentChunk.Chunk;


                Debug.Log($"Загружается кубов в чанке: {CurrentChunk.BlocksInChunk.Count}");


                foreach (var CurrentBlock in CurrentChunk.BlocksInChunk)
                {
                    
                    if (CurrentBlock.BlockName == "cobblestone")
                    {
                        Instantiate(Cobblsetone, new Vector3(CurrentBlock.PositionX, CurrentBlock.PositionY,
                            CurrentBlock.PositionZ), new Quaternion(0, 0, 0, 0), TargetChunk.transform);
                    }
                }
            }

Ответы (0 шт):