public void SpawnGem() { HexaBlock spawnBlock = GetBlock(spawnPoint.x, spawnPoint.y); if (spawnBlock && spawnBlock.blockType == BlockType.EMPTY) { spawnBlock.SetBlockStatus(BlockStatus.BLOCK, spawnPoint.x, spawnPoint.y); blockBoard[spawnPoint.x, spawnPoint.y] = spawnBlock.blockType; } }
public void Generate(MapInfo mapInfo) { int xSize = mapInfo.mapSize.x; int ySize = mapInfo.mapSize.y; blockBoard = new BlockType[xSize, ySize]; string[] blockInfos; blockInfos = mapInfo.mapInfoStr.Split(','); // 적합성 체크 if (blockInfos.Length != xSize * ySize) { // 잘못된 맵 정보 Debug.Log("MapInfo Error -----------" + blockInfos.Length + "!=" + xSize * ySize); return; } GameObject bgBlockParent = GameObject.Find("BgBlocks"); // 블록 생성 for (int x = 0; x < xSize; x++) { for (int y = 0; y < ySize; y++) { int blockNum = x + y * xSize; if (blockInfos[blockNum] == "0") { blockBoard[x, y] = BlockType.EMPTY; continue; } float yPosModifier = 0; if (x % 2 == 0) { yPosModifier = -0.5f; } bgBlocks.Add(Instantiate(bgBlockPrefap, new Vector3(x * 0.75f, -y + yPosModifier, 0), Quaternion.identity, bgBlockParent.transform)); HexaBlock block = Instantiate(hexaBlockPrefap, new Vector3(x * 0.75f, -y + yPosModifier, 0), Quaternion.identity, transform).GetComponent <HexaBlock>(); block.SetBlockStatus((BlockStatus)int.Parse(blockInfos[blockNum]), x, y); hexaBlocks.Add(block); blockBoard[x, y] = block.blockType; } } }