コード例 #1
0
        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);
        }