protected override void Awake() { base.Awake(); agent = new NavigationAgent(); agent.width = agent.height = 1; agent.range = 30; agent.penaltyModifier = 1; mainCamera = Camera.main; boundSize = new Vector3(); }
/// <summary> /// Checks if a Given tile in the Grid is Walkable by an Agent /// </summary> /// <param name="grid"></param> /// <param name="tile"></param> /// <param name="agentWidth"></param> /// <param name="agentHeight"></param> /// <returns></returns> public static bool IsTileWalkableByAgent(this Tilemap grid, Tile tile, NavigationAgent agent) { int xLimit = Mathf.Clamp(tile.x + agent.width, 0, grid.Columns); int yLimit = Mathf.Clamp(tile.y - agent.height, 0, grid.Rows); for (int y = tile.y; y > yLimit; y--) { for (int x = tile.x; x < xLimit; x++) { if (!grid.Tiles[x, y].walkable) { return(false); } } } return(true); }