// 每一列体素的合并
    private void MergeColunm(object obj)
    {
        Vector2Int index = (Vector2Int)obj;
        int        x     = index.x;
        int        z     = index.y;

        VoxelSpan voxelSpan = new VoxelSpan();

        voxelSpan.x        = x;
        voxelSpan.z        = z;
        voxelSpan.spanList = new List <SerializableVec3>();

        int voxelCount = 0;

        for (int i = 0; i < _yMax; i++)
        {
            if (_voxelArray[x, i, z])
            {
                voxelCount++;
            }
            else
            {
                if (voxelCount != 0)
                {
                    voxelSpan.spanList.Add(new Vector2((i - voxelCount) * _voxelHeight, i * _voxelHeight));
                }
                voxelCount = 0;
            }

            if (i == _yMax - 1 && voxelCount != 0)
            {
                voxelSpan.spanList.Add(new Vector2((i - voxelCount) * _voxelHeight, _yMax * _voxelHeight));
            }
        }
        if (bFirstBottomToZero)
        {
            voxelSpan.SetFirstSpanBottomToZero();
        }
        _mergedVoxelsSpan[x, z] = voxelSpan;
        lock (_locker)
        {
            complete++;
        }
    }