// Update is called once per frame void Update() { if (Input.GetButtonDown("Fire1") && !MouseOnUI) { Vector3 VecPoint; RaycastHit hit; Ray ray = Camera.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, Mathf.Infinity)) { VecPoint = hit.point; Destroy(Instantiate(ClickMarquer, hit.point, Quaternion.identity), 1); if (_selectTile != null) { _selectTile.Sprite.GetComponent <SpriteRenderer>().color = Color.green; } if (TerrainGridTool.TerrainTiles[TerrainGridTool.GetXPos(VecPoint), TerrainGridTool.GetYPos(VecPoint)] .IsWalkable) { _selectTile = TerrainGridTool.TerrainTiles[TerrainGridTool.GetXPos(VecPoint), TerrainGridTool.GetYPos(VecPoint)]; _selectTile.Sprite.GetComponent <SpriteRenderer>().color = Color.blue; } else { _selectTile = null; } } } }
public void Generate() { TerrainTiles = new GrideTile[width, height]; for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { GameObject sprite = Instantiate(NewSpriteTile, Origin.position + new Vector3(x * CellSize + CellSize / 2, +AltitudeOffset, y * CellSize + CellSize / 2), Quaternion.Euler(new Vector3(90, 0, 0)), Origin.transform); sprite.name = x + "/" + y; sprite.GetComponent <SpriteRenderer>().color = new Color(0, 0, 0, 0.2f); TerrainTiles[x, y] = new GrideTile(new Vector2Int(x, y), sprite); } } }
private void CalculTileDiago(GrideTile calculTile) { calculTile.GCost = Terrain[_calculatedPos.x, _calculatedPos.y].GCost + 10; calculTile.HCost = CalculatedDidsanceCost(_calculatedPos, calculTile.Gridposition); calculTile.FCost = calculTile.GCost + calculTile.HCost; }