public void OnClickInitMaze() { _end = Vector2Int.one * (MAZE_SIZE - 1); DestroyBlocks(); for (int i = 0; i < MAZE_SIZE * MAZE_SIZE; i++) { int posX = i / MAZE_SIZE; int posY = i % MAZE_SIZE; BlockData data = new BlockData(posX, posY, BlockType.CanPass); _blocks.Add(data); _blockElements.Add(MazeBlockCtrl.Show(transform, Vector2.one * 50, new Vector3(posY * 52, -posX * 52, 0), data)); } }
public static MazeBlockCtrl Show(Transform parent, Vector2 size, Vector3 position, MazeSolving.BlockData data) { GameObject blockGO = Instantiate(Resources.Load <GameObject>("MazeBlock")); blockGO.name = "[" + data.x + "," + data.y + "]"; blockGO.transform.parent = parent; blockGO.GetComponent <RectTransform>().sizeDelta = size; blockGO.GetComponent <RectTransform>().localPosition = position; MazeBlockCtrl ctrl = blockGO.GetComponent <MazeBlockCtrl>(); ctrl.Init(data); return(ctrl); }