private void CreateCubes() { _size = Vector2Int.zero; foreach (var cubeData in _sectionData.CubeDatas) { PoolObject poolObject = PoolerManager.Instance.GetPoolObject("Cube", transform); Cube cube = poolObject.GetComponent <Cube>(); cube.CellPosition = cubeData.CellPosition + _sectionOffset; cube.ChangeCubeType(cubeData.CubeType); _cubesByCellPos.Add(cubeData.CellPosition + _sectionOffset, cube); if (cubeData.CellPosition.x > _size.x) { _size.x = cubeData.CellPosition.x; } if (cubeData.CellPosition.z > _size.y) { _size.y = cubeData.CellPosition.z; } } foreach (var barrierData in _sectionData.BarrierDatas) { PoolObject poolObject = PoolerManager.Instance.GetPoolObject("BarrierCube", transform); BarrierCube barrierCube = poolObject.GetComponent <BarrierCube>(); barrierCube.StartCellPosition = barrierData.StartCellPosition + _sectionOffset; barrierCube.EndCellPosition = barrierData.EndCellPosition + _sectionOffset; barrierCube.Init(); barrierCube.TriggeredFillingCube += BarrierCube_TriggerFillingCube; _barrierCubes.Add(barrierCube); } _size += Vector2Int.one; }
public BarrierCube CreateBarrierCube(Vector3Int startCellPosition, Vector3Int endCellPosition, Transform parent = null) { BarrierCube barrierCube = GameObject.Instantiate(ResourceManager.Instance.GetResource <GameObject>("BarrierCube"), parent).GetComponent <BarrierCube>(); barrierCube.StartCellPosition = startCellPosition; barrierCube.EndCellPosition = endCellPosition; return(barrierCube); }
private void CreateBarrierCubes(Vector2Int size) { for (int i = 0; i < size.x; i++) { for (int j = 0; j < size.y; j++) { BarrierCube barrierCube = CubeFactory.Instance.CreateBarrierCube(new Vector3Int(i, 0, j), new Vector3Int(i, 0, j), _grid.transform); } } }
private void LoadSelectedSection() { ClearBarrierCubes(); ClearCubes(); SectionData selectedSectionData = _levels.LevelDatas[_selectedLevel].Sections[_selectedSection]; foreach (var cubeData in selectedSectionData.CubeDatas) { Cube cube = CubeFactory.Instance.CreateCube(cubeData.CellPosition, cubeData.CubeType, _grid.transform); } foreach (var cubeData in selectedSectionData.BarrierDatas) { BarrierCube barrierCube = CubeFactory.Instance.CreateBarrierCube(cubeData.StartCellPosition, cubeData.EndCellPosition, _grid.transform); } Debug.Log($"Loaded {selectedSectionData.CubeDatas.Count} cubes and {selectedSectionData.BarrierDatas.Count} barrier cubes from Level {_selectedLevel}, Section {_selectedSection}"); }