public void PlaceTileAction() { Ray ray = Services.GameManager.currentCamera.ScreenPointToRay(Input.mousePosition); RaycastHit hit = new RaycastHit(); if (Physics.Raycast(ray, out hit, Mathf.Infinity, Services.LevelEditor.topTileLayer)) { Vector3 pointOnBoard = hit.transform.position; selectedTile.transform.position = new Vector3(pointOnBoard.x, pointOnBoard.y + 0.2f, pointOnBoard.z); //selectedTile.transform.parent = null; selectedTile.transform.parent = Services.LevelEditor.transform; tileInPosition = true; } else { tileInPosition = false; if (Physics.Raycast(ray, out hit, Mathf.Infinity, Services.LevelEditor.invisPlane)) { selectedTile.transform.position = hit.point; } } //finalize tile placement if (Input.GetMouseButtonDown(0) && tileInPosition) { tileInPosition = false; BoardSpace space = CalculateSpaceFromLocation(selectedTile.transform.position); space.AddTile(selectedTile, false); space.gameObject.layer = LayerMask.NameToLayer("Default"); for (int i = 0; i < space.tileStack.Count; ++i) { space.tileStack[i].gameObject.layer = LayerMask.NameToLayer("TileLayer"); } selectedTile.GetComponent <MeshRenderer>().sortingOrder = 0; selectedTile.transform.SetParent(mainBoard.transform); selectedTile.gameObject.layer = LayerMask.NameToLayer("TopTiles"); selectedTile = null; currentSpawnedTile = null; } }
public void FinalizeTilePlacement() { BoardSpace space = CalculateSpaceFromLocation(spawnedTile.transform.position); space.AddTile(spawnedTile, false); spawnedTile.GetComponent <MeshRenderer> ().sortingOrder = 0; ToggleGlow(spawnedTile, "normal"); SetSpaceGlow("normal"); if (highlightedSpace != null) { ToggleGlow(highlightedSpace, "normal"); } boardManager.CheckForScore(); if (!firstTileFinalized) { firstTileFinalized = true; if ((space.colNum == 0) && (space.rowNum != 0)) { boardManager.sideAboutToCollapse = 0; } else if (space.rowNum == 5) { boardManager.sideAboutToCollapse = 1; } else if (space.colNum == 5) { boardManager.sideAboutToCollapse = 2; } else { boardManager.sideAboutToCollapse = 3; } List <BoardSpace> boardspaces = boardManager.GetSpaceListFromSideNum(); foreach (BoardSpace bs in boardspaces) { bs.gameObject.GetComponent <Renderer> ().material = boardManager.mats [7]; bs.aboutToCollapse = true; } } mode = "Select Stack"; spawnedTile.GetComponent <AudioSource> ().Play(); }