public void Start() { target = Camera.main.transform; Cam = Camera.main; Player = transform.InverseTransformPoint(target.position ); Generator = this; Parent = transform; VoxelChunk.parent = transform; VoxelChunk.generator = Generator; MeshFactory.m_surfaceLevel = m_surfaceLevel; MeshFactory.generator = Generator; m_surfacePerlin = new PerlinNoise(m_surfaceSeed); m_cavePerlin = new PerlinNoise(m_surfaceSeed/2); MeshFactory.SurfacePerlin = m_surfacePerlin; MeshFactory.CavePerlin = m_cavePerlin; MeshFactory.MarchingCubes = new MarchingCubes(); MeshFactory.MarchingCubesVoxels = new MarchingCubes(); MeshFactory.MakeCaves = MakeCaves; Offset = new Vector3(m_voxelWidth, m_voxelHeight/2, m_voxelLength); ParentPos = Parent.position; MarchingCubes.SetTarget(126); MarchingCubes.SetWindingOrder(0, 1, 2); CanContinue = true; StartCoroutine(StartThreads()); }