void Update() { if (activeGhost != null) { if (Input.GetMouseButtonUp(0)) { mouseDownCounts = true; } updateRaycast(); placeGhost(); if (Input.GetMouseButtonDown(0) && mouseDownCounts) { foreach (Coord coord in adjacentCoords) { if (activeGhost.CanBePlacedAt(coord.X, coord.Z)) { ItemLocationSelectedSignal itemLocationSelectedSignal = new ItemLocationSelectedSignal(activeGhost, coord.X, coord.Z); GameSceneSignalManager.Inst.FireSignal(itemLocationSelectedSignal); Destroy(activeGhost.gameObject); activeGhost = null; adjacentCoords = null; return; } } } } }
private void onItemLocationSelected(Signal signal) { ItemLocationSelectedSignal itemLocationSelectedSignal = (ItemLocationSelectedSignal)signal; int x = itemLocationSelectedSignal.X; int z = itemLocationSelectedSignal.Z; Tile existingTile = GetTileAt(x, z); if (existingTile != null) { tiles.Remove(existingTile); existingTile.DestroySelf(); } Tile newTile = Instantiate <Tile>(itemLocationSelectedSignal.ItemGhost.TilePrefab, new Vector3(x, 0, z), Quaternion.identity, transform); newTile.x = itemLocationSelectedSignal.X; newTile.z = itemLocationSelectedSignal.Z; tiles.Add(newTile); }