public void Init(MCRScene scene)
        {
            clusterStride = Marshal.SizeOf <ClusterInfo>();
            vertexStride  = Marshal.SizeOf <VertexInfo>();

            clusterList   = new Unity.Collections.NativeArray <ClusterInfo>(ClusterCount, Unity.Collections.Allocator.Persistent);
            vertexList    = new Unity.Collections.NativeArray <VertexInfo>(VertexCount, Unity.Collections.Allocator.Persistent);
            instanceCount = new uint[1];

            indirectArgs = new List <uint> {
                0, 0, 0, 0, 0
            };
            vertexBuffer            = ComputeBufferPool.GetTempBuffer(VertexCount, vertexStride);
            clusterBuffer           = ComputeBufferPool.GetTempBuffer(ClusterCount, clusterStride);
            cullResultBuffer        = ComputeBufferPool.GetTempBuffer(ClusterCount, 4);
            cullInstanceCountBuffer = ComputeBufferPool.GetTempBuffer(1, 4);
            cullInstanceCountBuffer.SetData(instanceCount);
            inDirectBuffer = ComputeBufferPool.GetIndirectBuffer();

            ClusterInfoAssetsPath = MCRConstant.BakeAssetSavePath + "/" + ClusterInfoAssetsPath;
            if (Application.platform == RuntimePlatform.WindowsEditor || Application.platform == RuntimePlatform.WindowsPlayer)
            {
                //ClusterInfoAssetsPath = MCRConstant.BakeAssetSavePath + "/" + ClusterInfoAssetsPath;
            }
            else
            {
                scene.StartCoroutine(LoadingBytes());
            }


            bLoadFinish = false;
            bDestroyed  = false;
        }