EdenSpark EdenSpark EdenSpark
/

Contents:

  • Getting Started
    • Start Here
    • Build Your First Game
    • Create Your Custom Mesh
    • UI Basics
    • Console Commands and Cheats
    • Hotkeys
    • User Menu
    • Debugger
    • daProfiler
    • Memory Profiler
    • Standalone Build
    • Linux Setup Guide
    • Vibecoding: Making Games with AI Tools
    • AI Generation Tool
    • Main loop
  • Editor
    • Main Menu
    • Preferences
    • Toolbar
    • Performance Monitoring
    • Viewport
    • Outliner
    • Inspector
    • Importer
    • Project Panel
    • Console
    • Code Editor
    • Drag and Drop
    • Notifications
    • Editor Scripting API
  • Scene
  • Resources
    • Models
      • Model Importing
      • Model Editor Tools
        • Model
        • Meshes
        • Physics
        • Materials
        • Animations
      • Model Scripting
      • Model Scripting API
    • Textures
      • Texture Importing
      • Texture Editor Tools
      • Texture Scripting
      • Texture Scripting API
      • CubeMaps and Skyboxes
    • Materials
      • Material Creation
      • Material Editor Tools
      • Material Scripting
      • Material Scripting API
      • Material Properties API
    • Shaders
    • Prefabs
      • Prefab Creation
      • Prefab Editor Tools
      • Prefab Scripting
      • Prefab Scripting API
    • Sounds
    • Fonts
    • Resources module
    • Mesh primitives
    • Create Mesh Async
  • System
  • Input
    • Input consts
    • Action set module
    • Raw input module
    • Global input state
  • Components
    • Components module
    • Render
      • Camera
      • Mesh
      • SpriteRenderer
      • ParticleSystem
      • LodSelector
      • Outline
      • Text3d
      • Sky
      • Ambient Settings
      • ShadowSettings
      • Tonemap
      • Bloom
      • Blur
      • AntiAliasing
      • SSAOSettings
      • SSRSettings
      • DistanceFog
      • RenderPipeline
    • Lights
      • DirectionalLight
      • PointLight
      • SpotLight
    • HD Render
      • HDGlobalIllumination
      • HDStaticShadows
      • HDSky
      • HDSkyOrigin
      • HDWater
      • HDDepthOfField
      • HDExposureAdaptation
    • Physics
      • RigidBody
      • Collider
      • CollisionListener
      • SpringJoint
      • HingeJoint
      • SixDofJoint
      • CharacterController
      • VehicleController
    • Animation
      • Animator
      • SingleAnimationPlayer
    • Navigation
      • Navmesh
    • Audio
    • UI
      • UICanvas
      • UIFrame
      • UIText
      • UIImage
      • UIMask
      • UIAnchor
      • UIButton
      • UICheckbox
      • UITextInput
      • UIDropdown
      • UISlider
      • UIScrollArea
      • UIHorizontalLayout
      • UIVerticalLayout
      • UIFlowLayout
      • UIContentSizeFitter
      • UIColorState
      • UITextureState
      • UIComponent, ui events
  • Physics
  • Math
    • Math module
    • Quaternion module
    • Random module
    • Noise module
    • Color module
    • Curve module
  • Time
  • Render
    • Render module
    • Debug render
    • Wireframe render
    • Pixel render
    • HD Renderer
    • UI
    • User Pixel Shaders
    • Shader Graph Nodes
    • Shader and Shader Graph Compiler
  • Sound
  • Local storage
  • Generic storage
  • JSON
  • Coroutines
  • Navigation
  • Behavior Tree
  • Free camera
  • Arcball camera
  • Tweener
    • Easing
    • Tween
  • Daslang’s documentation
    • Daslang 0.6.2 Reference Manual
      • 1. Introduction
      • 2. Design Philosophy
      • 3. The language
        • 3.1. Program Structure
        • 3.2. Lexical Structure
        • 3.3. Values and Data Types
        • 3.4. Pointers
        • 3.5. Constants, Enumerations, Global variables
        • 3.6. Statements
        • 3.7. Expressions
        • 3.8. Function
        • 3.9. Block
        • 3.10. Lambda
        • 3.11. Generator
        • 3.12. Struct
        • 3.13. Class
        • 3.14. Tuple
        • 3.15. Variant
        • 3.16. Bitfield
        • 3.17. Type Aliases
        • 3.18. Array
        • 3.19. Table
        • 3.20. Iterator
        • 3.21. Comprehension
        • 3.22. String Builder
        • 3.23. Modules
        • 3.24. Move, Copy, and Clone
        • 3.25. Clone
        • 3.26. Finalizer
        • 3.27. Temporary types
        • 3.28. Unsafe
        • 3.29. Generic Programming
        • 3.30. Pattern matching
        • 3.31. Annotations
        • 3.32. Options
        • 3.33. Macros
        • 3.34. Reification
        • 3.35. AST Matching
        • 3.36. Built-in Functions
        • 3.37. Lint Tools
      • 4. The Runtime
        • 4.1. Context
        • 4.2. Locks
        • 4.3. Very safe context
        • 4.4. Type Mangling
      • 5. Embedding and Integration
        • 5.1. Quick Start
        • 5.2. C++ API Reference
        • 5.3. C API Reference
        • 5.4. External Modules
        • 5.5. Project Files (.das_project)
        • 5.6. Advanced Topics
      • 6. LINQ-fold patterns — what _fold(...) recognizes
      • 7. daslang strudel vs strudel.cc — Feature Comparison
    • Daslang Standard Library 0.6.2
      • 1. Introduction
      • 2. Core
        • 2.1. Built-in runtime
        • 2.2. Math library
        • 2.3. Math bit helpers
        • 2.4. Boost package for math
        • 2.5. Random generator library
      • 3. Strings
        • 3.1. String manipulation library
        • 3.2. Boost package for string manipulation library
        • 3.3. Soft-failing string-to-numeric conversions returning Result<T; ConversionError>
        • 3.4. Temporary string utilities
        • 3.5. UTF-8 utilities
        • 3.6. Base64 encoding and decoding
        • 3.7. Long string embedding macro
      • 4. I/O and Serialization
        • 4.1. HTTP and WebSocket library (libhv)
        • 4.2. High-level HTTP and WebSocket wrappers
        • 4.3. URI manipulation library based on UriParser
        • 4.4. ANSI terminal color and style helpers
        • 4.5. General purpose serialization
        • 4.6. Command-line utilities
      • 5. Data Structures
        • 5.1. Boost package for array manipulation
        • 5.2. Boost package for the builtin sort
        • 5.3. Flat hash table
        • 5.4. Cuckoo hash table
        • 5.5. SOA (Structure of Arrays) transformation
        • 5.6. Packed boolean array
        • 5.7. Monadic Option<T> — a value-or-nothing tagged pair
        • 5.8. Monadic Result<T, E> — a value-or-error tagged pair
      • 6. Algorithms and Functional
        • 6.1. Miscellaneous algorithms
        • 6.2. Functional programming library
        • 6.3. LINQ
        • 6.4. Boost module for LINQ
        • 6.5. LINQ fold macros (_fold / _old_fold)
        • 6.6. Pattern matching
      • 7. Data Formats
        • 7.1. JSON manipulation library
        • 7.2. Boost package for JSON
        • 7.3. JSON-RPC 2.0 envelope + parser, transport-agnostic
        • 7.4. TOML 1.0 parser
        • 7.5. XML parser (pugixml)
        • 7.6. High-level XML helpers (pugixml boost)
        • 7.7. Regular expression library
        • 7.8. Boost package for REGEX
        • 7.9. PEG parser generator
      • 8. Entity Component System
        • 8.1. DECS, Daslang entity component system
        • 8.2. Boost package for DECS
        • 8.3. DECS debug state reporting
      • 9. Concurrency
        • 9.1. Jobs and threads
        • 9.2. Coroutines and additional generator support
        • 9.3. Async/await coroutine macros
      • 10. AST and Macros
        • 10.1. Runtime type information library
        • 10.2. decltype macro and template function annotation
        • 10.3. Constant expression checker and substitution
      • 11. Annotations and Contracts
        • 11.1. Miscellaneous contract annotations
        • 11.2. Apply reflection pattern
        • 11.3. defer and defer_delete macros
        • 11.4. with_ macro: locked array/table element binding
        • 11.5. if_not_null macro
        • 11.6. static_let macro
        • 11.7. lpipe macro
        • 11.8. Assert once
        • 11.9. Loop unrolling
        • 11.10. Bitfield operator overloads
        • 11.11. Bitfield name traits
        • 11.12. Enumeration traits
        • 11.13. Type trait macros
      • 12. Classes and Interfaces
        • 12.1. Class method macros
        • 12.2. instance_function function annotation
        • 12.3. Interfaces
        • 12.4. C#-like multicast delegate type macro
        • 12.5. Dynamic RTTI type casts
        • 12.6. Generic return type instantiation
      • 13. Testing and Debugging
        • 13.1. Debug agent API
        • 13.2. Debug expression evaluator
        • 13.3. Faker
        • 13.4. Fuzzer
        • 13.5. Debug Adapter Protocol data structures
      • 14. Code Quality and Refactoring
        • 14.1. Paranoid lint pass
        • 14.2. Repo-level lint configuration
        • 14.3. Code validation annotations
        • 14.4. Consume argument optimization
        • 14.5. Call argument removal annotation
      • 15. Image and Font Processing
        • 15.1. Image loading, writing, and resizing (stb_image)
        • 15.2. High-level image API (stbimage_boost)
        • 15.3. Raster operations (pixel copy, convert, SIMD gather/scatter)
        • 15.4. TrueType font loading and rasterization (stb_truetype)
        • 15.5. TrueType font API (stbimage_ttf)
      • 16. Audio and MIDI
        • 16.1. WAV file reading and writing
      • 17. Strudel (Live Coding)
        • 17.1. Event payload and ADSR/delay-time resolvers
        • 17.2. Cycle-space time primitives: TimeSpan, Hap, and cycle helpers
        • 17.3. Pattern algebra, combinators, and fluent control API
        • 17.4. Mini-notation tokenizer, parser, and fluent-DSL entry points
        • 17.5. Musical scales and note-name helpers
        • 17.6. Audio synthesis: oscillators, drums, filters, and effects
        • 17.7. Sample bank and audio file loading
        • 17.8. Voice allocation, effect bus routing, and per-tick mixing
        • 17.9. Top-level playback harness: tracks, BPM/CPS, and threaded audio
        • 17.10. MIDI file parser
        • 17.11. MIDI file playback with GM preset mapping
        • 17.12. SoundFont 2 file parser
        • 17.13. SoundFont 2 per-voice runtime: envelope, LFO, modulators, biquad
        • 17.14. Live-reload state preservation
  • Indices and tables

On this page

  • Classes
  • Structures
  1. EdenSpark /
  2. Components /
  3. Navigation /
  4. Navmesh

Navmesh¶

Classes¶

NavMesh : NativeComponent¶

Represents a navigation mesh. Use ‘Bake’ and ‘Clear’ in this component to bake navmesh. Baking collects all static (non-moving, non-sensor) Collider components in the child nodes under this node to construct navmesh.

NavMesh.bakeAsync(cb: lambda<(result:BakeResult):void>)¶

Bakes a navigation mesh from the static Collider geometry under this NavMesh node (dynamic, kinematic and sensor bodies are skipped), using the agent parameters (radius, height, climb, slope, cell size) on this component. Replaces any previous bake of the same volume; peer volumes are left intact. Calls the provided block once the bake is finished; treat the bake as asynchronous and do not rely on the block running within this call. The outcome is BakeResult.Baked when a navmesh was produced, BakeResult.Empty when the bake ran but produced no walkable navmesh (no static Collider geometry under the node, or none of it was walkable) and cleared any previous navmesh of the volume, or BakeResult.Failed when the bake could not run at all (the reason is logged).

Arguments:
  • cb : lambda<(result: BakeResult):void> - the lambda to call with the BakeResult outcome when the bake is finished

NavMesh.findPath(req: NavPathQuery; blk: block<(path:array<float3>):void>): PathResult¶

Searches the navmesh baked with this component’s agent profile for a walkable route, and if one was found, calls the provided block with the waypoints in order (from..to).

Arguments:
  • req : NavPathQuery - the pathfinding request

  • blk : block<(path:array<float3>):void> - the block to call with the waypoint array (not called on PathResult.NoPath)

Returns:
  • PathResult - PathResult.Full for a complete route, PathResult.Partial when the goal is

unreachable (or req.maxPathPoints was hit) and the path stops at the closest reachable point, PathResult.NoPath when nothing walkable was found for this profile

NavMesh.trace(req: NavRayCast; blk: block<(hit:NavTraceHit):void>): NavMeshTraceResult¶

Casts a walkability ray along this profile’s navmesh surface from req.from toward req.to, and if a wall blocks the way, calls the provided block for the resulting hit.

Arguments:
  • req : NavRayCast - the raycast request

  • blk : block<(hit: NavTraceHit):void> - the block to call with the wall hit (called only on NavMeshTraceResult.Blocked)

Returns:
  • NavMeshTraceResult - NavMeshTraceResult.Reached when the straight line is walkable, NavMeshTraceResult.Blocked

when a wall is in the way, NavMeshTraceResult.NotOnNavMesh when req.from is not on the navmesh

NavMesh.projectPoint(req: NavPointQuery; blk: block<(projected:float3):void>): bool¶

Projects a world position onto the nearest point of this profile’s navmesh (height follows the navmesh surface), and if the position is close enough, calls the provided block with the result.

Arguments:
  • req : NavPointQuery - the projection request

  • blk : block<(projected:float3):void> - the block to call with the projected point (not called when nothing is close enough)

Returns:
  • bool - true when req.pos is close enough to the navmesh

NavMesh.distanceToWall(req: NavWallQuery; blk: block<(hit:NavWallHit):void>): float¶

Measures the distance from a position (projected onto this profile’s navmesh) to the nearest navmesh wall within req.maxRadius, and if a wall was found, calls the provided block for it.

Arguments:
  • req : NavWallQuery - the distance-to-wall request

  • blk : block<(hit: NavWallHit):void> - the block to call with the nearest wall (not called when no wall is within the radius)

Returns:
  • float - the distance to the nearest wall, req.maxRadius when no wall is that close, or a

negative value when req.pos is not on the navmesh

NavMesh.randomPointsAroundCircle(req: NavCircleQuery; blk: block<(points:array<float3>):void>): int¶

Generates up to req.count random walkable positions reachable from req.center within req.radius on this profile’s navmesh, and if any were produced, calls the provided block with the array of points.

Arguments:
  • req : NavCircleQuery - the random-points request

  • blk : block<(points:array<float3>):void> - the block to call with the generated points (not called when none were produced)

Returns:
  • int - the number of points produced (0 when req.center is not on the navmesh)

NavMesh.randomPoint(seed: int; blk: block<(point:float3):void>): bool¶

Picks a random walkable position anywhere on this profile’s navmesh (polygons weighted by area), and if one was produced, calls the provided block with it.

Arguments:
  • seed : int - random seed; 0 is non-deterministic (each call differs), any nonzero seed reproduces the same point

  • blk : block<(point:float3):void> - the block to call with the random position (not called when nothing is baked)

Returns:
  • bool - true when a point was produced

Properties:

NavMesh.agentRadius: float¶
NavMesh.agentRadius =(value: float)¶

Radius of the agent capsule.

Arguments:
  • value : float

NavMesh.agentHeight: float¶
NavMesh.agentHeight =(value: float)¶

Height of the agent capsule.

Arguments:
  • value : float

NavMesh.agentMaxClimb: float¶
NavMesh.agentMaxClimb =(value: float)¶

Maximum height step the agent can climb.

Arguments:
  • value : float

NavMesh.agentMaxSlope: float¶
NavMesh.agentMaxSlope =(value: float)¶

Maximum walkable slope angle in degrees.

Arguments:
  • value : float

NavMesh.cellSize: float¶
NavMesh.cellSize =(value: float)¶

Voxel cell size (XZ plane) for the navmesh bake.

Arguments:
  • value : float

NavMesh.cellHeight: float¶
NavMesh.cellHeight =(value: float)¶

Voxel cell height (Y axis) for the navmesh bake.

Arguments:
  • value : float

NavMesh.isBaked: bool¶

Whether this volume currently has a baked navmesh.

Structures¶

NavPathQuery¶

Represents a navmesh pathfinding request.

Fields:
  • from : float3 - The world-space start position

  • to : float3 - The world-space target position

  • ext : float3 = float3(0f,0f,0f) - Half-extents of the box used to project from/to onto the navmesh, resolved per axis: a zero component takes the profile-derived default (so float3(0) is fully automatic, float3(0, 5, 0) widens only Y)

  • maxPathPoints : int = 0 - Cap on the number of waypoints (0 = no cap); hitting the cap yields PathResult.Partial. Use to keep a query inside a frame budget

NavRayCast¶

Represents a navmesh walkability raycast request: whether an agent could walk in a straight line, not what a 3D ray would hit.

Fields:
  • from : float3 - The world-space start position (projected onto the navmesh)

  • to : float3 - The world-space target position

  • ext : float3 = float3(0f,0f,0f) - Half-extents of the projection box, resolved per axis: a zero component takes the profile-derived default (so float3(0) is fully automatic, float3(0, 5, 0) widens only Y)

NavPointQuery¶

Represents a request to project a position onto the navmesh.

Fields:
  • pos : float3 - The world-space position to project

  • ext : float3 = float3(0f,0f,0f) - Half-extents of the projection box, resolved per axis: a zero component takes the profile-derived default (so float3(0) is fully automatic, float3(0, 5, 0) widens only Y)

NavWallQuery¶

Represents a distance-to-wall request.

Fields:
  • pos : float3 - The world-space position (projected onto the navmesh)

  • maxRadius : float = 5f - The search radius

  • ext : float3 = float3(0f,0f,0f) - Half-extents of the projection box, resolved per axis: a zero component takes the profile-derived default (so float3(0) is fully automatic, float3(0, 5, 0) widens only Y)

NavCircleQuery¶

Represents a random-walkable-points request around a center position.

Fields:
  • center : float3 - The world-space center of the search circle (projected onto the navmesh)

  • radius : float = 5f - The search radius (limits the visited polygons, so points are not exactly distance-constrained)

  • count : int = 1 - How many points to generate

  • seed : int = 0 - Random seed; 0 is non-deterministic (each call differs), any nonzero seed reproduces the same points

  • ext : float3 = float3(0f,0f,0f) - Half-extents of the projection box, resolved per axis: a zero component takes the profile-derived default (so float3(0) is fully automatic, float3(0, 5, 0) widens only Y)

NavTraceHit¶

The wall hit reported by a navmesh walkability raycast when the ray is blocked.

Fields:
  • position : float3 - The wall hit point lifted to the navmesh surface

  • normal : float3 - The wall normal in the XZ plane (y = 0)

NavWallHit¶

The nearest wall reported by a distance-to-wall query.

Fields:
  • position : float3 - The nearest point on the wall

  • normal : float3 - The normalized direction from the wall point back to the query position

  • distance : float - The distance from the (projected) query position to the wall

Previous
Navigation
Next
Audio

2026 Gaijin Games Kft. All trademarks, logos, and brand names are the property of their respective owners.

Made with Sphinx and Shibuya theme.