BezierCurvePath FindPath(Vector3 start_position, Vector3 target_position) { this.UpdateMeshFilterBounds(); var path_list = Astar.FindPathAstar(source: start_position, destination: target_position, search_boundary: this._search_boundary, grid_granularity: this._grid_granularity, agent_size: this._actor_size, near_stopping_distance: this._approach_distance); if (path_list != null && path_list.Count > 0) { path_list = Astar.SimplifyPath(path: path_list, sphere_cast_radius: this._actor_size); path_list.Add(item: target_position); } else { path_list = new List <Vector3> { start_position, target_position }; } var path = new BezierCurvePath(start_position: start_position, target_position: target_position, game_object: this._bezier_curve, path_list: path_list); return(path); }