public TerrainChunk CreateChunk(ChunkPos pos) { if (_chunks.ContainsKey(pos)) throw new InvalidOperationException(string.Format( "Chunk at {0} already exists", pos)); var chunkObject = new GameObject("Chunk: " + pos) { hideFlags = HideFlags.HideInHierarchy }; var chunk = chunkObject.AddComponent<TerrainChunk>(); chunk.terrain = this; chunk.position = pos; chunk.transform.parent = transform; chunk.transform.localPosition = pos.ToVector3(); chunk.transform.localRotation = Quaternion.identity; chunk.transform.localScale = Vector3.one; _chunks[pos] = chunk; return chunk; }