mirror of
https://github.com/godotengine/godot.git
synced 2025-10-19 16:03:29 +00:00
Merge pull request #80796 from smix8/navgenerator_2d_4.x
Add 2D navigation mesh baking
This commit is contained in:
commit
7dccb9e039
44 changed files with 10706 additions and 537 deletions
|
@ -70,6 +70,7 @@
|
|||
#include "servers/movie_writer/movie_writer.h"
|
||||
#include "servers/movie_writer/movie_writer_mjpeg.h"
|
||||
#include "servers/navigation_server_2d.h"
|
||||
#include "servers/navigation_server_2d_dummy.h"
|
||||
#include "servers/navigation_server_3d.h"
|
||||
#include "servers/navigation_server_3d_dummy.h"
|
||||
#include "servers/physics_server_2d.h"
|
||||
|
@ -339,8 +340,14 @@ void initialize_navigation_server() {
|
|||
navigation_server_3d->init();
|
||||
|
||||
// Init 2D Navigation Server
|
||||
navigation_server_2d = memnew(NavigationServer2D);
|
||||
navigation_server_2d = NavigationServer2DManager::new_default_server();
|
||||
if (!navigation_server_2d) {
|
||||
WARN_PRINT_ONCE("No NavigationServer2D implementation has been registered! Falling back to a dummy implementation: navigation features will be unavailable.");
|
||||
navigation_server_2d = memnew(NavigationServer2DDummy);
|
||||
}
|
||||
|
||||
ERR_FAIL_NULL_MSG(navigation_server_2d, "Failed to initialize NavigationServer2D.");
|
||||
navigation_server_2d->init();
|
||||
}
|
||||
|
||||
void finalize_navigation_server() {
|
||||
|
@ -350,6 +357,7 @@ void finalize_navigation_server() {
|
|||
navigation_server_3d = nullptr;
|
||||
|
||||
ERR_FAIL_NULL(navigation_server_2d);
|
||||
navigation_server_2d->finish();
|
||||
memdelete(navigation_server_2d);
|
||||
navigation_server_2d = nullptr;
|
||||
}
|
||||
|
@ -3491,6 +3499,9 @@ bool Main::iteration() {
|
|||
// process all our active interfaces
|
||||
XRServer::get_singleton()->_process();
|
||||
|
||||
NavigationServer2D::get_singleton()->sync();
|
||||
NavigationServer3D::get_singleton()->sync();
|
||||
|
||||
for (int iters = 0; iters < advance.physics_steps; ++iters) {
|
||||
if (Input::get_singleton()->is_using_input_buffering() && agile_input_event_flushing) {
|
||||
Input::get_singleton()->flush_buffered_events();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue