示例#1
0
 private void Update()
 {
     if (Input.GetKeyDown(KeyCode.Escape) && currentTile != null)
     {
         GameObjectHighlighter.Deselect(startColor, currentTile);
     }
 }
示例#2
0
    public void SelectAvailableTile()
    {
        LocalPosition unitPosition = PositionConverter.ToLocalCoordinates(selectedUnit.worldPosition);

        selectedUnit.availableMovementTiles = new List <Node>();
        Node currentTile = map.graph[unitPosition.x, unitPosition.y];

        GetAvailableMovementTiles(selectedUnit.availableMovementTiles, currentTile);

        foreach (var item in selectedUnit.availableMovementTiles)
        {
            Collider[]    colliders;
            WorldPosition tileWorldPos = PositionConverter.ToWorldCoordinates(new LocalPosition(item.x, item.y));
            colliders = Physics.OverlapSphere(tileWorldPos.ToVector3(), 0.125f /*Radius*/);

            if (colliders.Length >= 1)
            {
                foreach (var collider in colliders)
                {
                    var go = collider.gameObject;
                    if (go.name.StartsWith("Hexagon"))
                    {
                        if (map.tiles[item.x, item.y] != (int)TileTypes.SWAMP)
                        {
                            selectedUnit.startColor         = go.GetComponent <Renderer>().material.GetColor("_Color");
                            selectedUnit.availableTileColor = selectedUnit.startColor;
                            //TODO: think about  other variant of colorized tile
                            selectedUnit.availableTileColor.g = 0.6f;
                            selectedUnit.availableTileColor.b = 0.4f;
                            GameObjectHighlighter.Select(selectedUnit.startColor, selectedUnit.availableTileColor, go.GetComponent <Renderer>());
                        }
                    }
                }
            }
        }
    }