Chunk createChunk(GameObject prefab, int chunkId, float loadSpeed) { GameObject newChunkGO = new GameObject("Chunk" + chunkId); newChunkGO.transform.parent = generationParentTransform; newChunkGO.transform.position = lastRoomEndPosition; newChunkGO.transform.Rotate(0, 0, rotation); newChunkGO.layer = LayerMask.NameToLayer("Chunk"); Chunk newChunk = newChunkGO.AddComponent <Chunk>(); prefab.GetComponent <Chunk>().copyTo(newChunk); BoxCollider2D prefabCollider = prefab.GetComponent <BoxCollider2D>(); BoxCollider2D newChunkCollider = newChunkGO.AddComponent <BoxCollider2D>(); newChunkCollider.isTrigger = prefabCollider.isTrigger; newChunkCollider.center = prefabCollider.center; newChunkCollider.size = prefabCollider.size; proceduralGeneratorOfChunk.StartCoroutine(createTiles(prefab, newChunkGO, loadSpeed)); return(newChunk); }