1 Hour Ago
Various small fixes and cleanup: - Root the native log callback delegate in a static field (GC could collect it and crash the next DLL log) - RebuildTilesInBounds no longer skips the default navmesh when independent navmeshes overlap the bounds (stale tiles at island/monument seams) - IsNavMeshBuilt answers from the agent's bound navmesh with a lazy rebind instead of a fresh resolve that could disagree with every query - Restore rustnav.debugpath / debugraycast / debugsample, ported to the NavVector3 API with proper independent navmesh space transforms and a not-built guard - Delete dead code: GeometryUtils, NavmeshHelpers, TileExtractor (CreateBoxMesh moved into BackgroundTileBuilder), unused RecastWrapper P/Invokes pointing at removed exports, disabled MAX_BUILD_QUEUE throttle, GetOrigin, IsSprintingOnClient - Skip MeshColliders with no sharedMesh during tile collection, bounds-check FailTile/AddTile coords - TryOpenDoors reports whether a door actually opened (TryOpenDoorFor void -> bool) - Null-guard RustNavigation.Instance on scene teardown, clear the stale Instance in OnDestroy