class_navigationobstacle2d.rst 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. :github_url: hide
  2. .. DO NOT EDIT THIS FILE!!!
  3. .. Generated automatically from Godot engine sources.
  4. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/NavigationObstacle2D.xml.
  6. .. _class_NavigationObstacle2D:
  7. NavigationObstacle2D
  8. ====================
  9. **Inherits:** :ref:`Node2D<class_Node2D>` **<** :ref:`CanvasItem<class_CanvasItem>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
  10. 2D Obstacle used in navigation to constrain avoidance controlled agents outside or inside an area.
  11. .. rst-class:: classref-introduction-group
  12. Description
  13. -----------
  14. 2D Obstacle used in navigation to constrain avoidance controlled agents outside or inside an area. The obstacle needs a navigation map and outline vertices defined to work correctly.
  15. If the obstacle's vertices are winded in clockwise order, avoidance agents will be pushed in by the obstacle, otherwise, avoidance agents will be pushed out. Outlines must not cross or overlap.
  16. Obstacles are **not** a replacement for a (re)baked navigation mesh. Obstacles **don't** change the resulting path from the pathfinding, obstacles only affect the navigation avoidance agent movement by altering the suggested velocity of the avoidance agent.
  17. Obstacles using vertices can warp to a new position but should not moved every frame as each move requires a rebuild of the avoidance map.
  18. .. rst-class:: classref-introduction-group
  19. Tutorials
  20. ---------
  21. - :doc:`Using NavigationObstacles <../tutorials/navigation/navigation_using_navigationobstacles>`
  22. .. rst-class:: classref-reftable-group
  23. Properties
  24. ----------
  25. .. table::
  26. :widths: auto
  27. +-----------------------------------------------------+---------------------------------------------------------------------------------+--------------------------+
  28. | :ref:`bool<class_bool>` | :ref:`avoidance_enabled<class_NavigationObstacle2D_property_avoidance_enabled>` | ``true`` |
  29. +-----------------------------------------------------+---------------------------------------------------------------------------------+--------------------------+
  30. | :ref:`int<class_int>` | :ref:`avoidance_layers<class_NavigationObstacle2D_property_avoidance_layers>` | ``1`` |
  31. +-----------------------------------------------------+---------------------------------------------------------------------------------+--------------------------+
  32. | :ref:`float<class_float>` | :ref:`radius<class_NavigationObstacle2D_property_radius>` | ``0.0`` |
  33. +-----------------------------------------------------+---------------------------------------------------------------------------------+--------------------------+
  34. | :ref:`Vector2<class_Vector2>` | :ref:`velocity<class_NavigationObstacle2D_property_velocity>` | ``Vector2(0, 0)`` |
  35. +-----------------------------------------------------+---------------------------------------------------------------------------------+--------------------------+
  36. | :ref:`PackedVector2Array<class_PackedVector2Array>` | :ref:`vertices<class_NavigationObstacle2D_property_vertices>` | ``PackedVector2Array()`` |
  37. +-----------------------------------------------------+---------------------------------------------------------------------------------+--------------------------+
  38. .. rst-class:: classref-reftable-group
  39. Methods
  40. -------
  41. .. table::
  42. :widths: auto
  43. +-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  44. | :ref:`bool<class_bool>` | :ref:`get_avoidance_layer_value<class_NavigationObstacle2D_method_get_avoidance_layer_value>` **(** :ref:`int<class_int>` layer_number **)** |const| |
  45. +-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  46. | :ref:`RID<class_RID>` | :ref:`get_navigation_map<class_NavigationObstacle2D_method_get_navigation_map>` **(** **)** |const| |
  47. +-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  48. | :ref:`RID<class_RID>` | :ref:`get_rid<class_NavigationObstacle2D_method_get_rid>` **(** **)** |const| |
  49. +-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  50. | void | :ref:`set_avoidance_layer_value<class_NavigationObstacle2D_method_set_avoidance_layer_value>` **(** :ref:`int<class_int>` layer_number, :ref:`bool<class_bool>` value **)** |
  51. +-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  52. | void | :ref:`set_navigation_map<class_NavigationObstacle2D_method_set_navigation_map>` **(** :ref:`RID<class_RID>` navigation_map **)** |
  53. +-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  54. .. rst-class:: classref-section-separator
  55. ----
  56. .. rst-class:: classref-descriptions-group
  57. Property Descriptions
  58. ---------------------
  59. .. _class_NavigationObstacle2D_property_avoidance_enabled:
  60. .. rst-class:: classref-property
  61. :ref:`bool<class_bool>` **avoidance_enabled** = ``true``
  62. .. rst-class:: classref-property-setget
  63. - void **set_avoidance_enabled** **(** :ref:`bool<class_bool>` value **)**
  64. - :ref:`bool<class_bool>` **get_avoidance_enabled** **(** **)**
  65. If ``true`` the obstacle affects avoidance using agents.
  66. .. rst-class:: classref-item-separator
  67. ----
  68. .. _class_NavigationObstacle2D_property_avoidance_layers:
  69. .. rst-class:: classref-property
  70. :ref:`int<class_int>` **avoidance_layers** = ``1``
  71. .. rst-class:: classref-property-setget
  72. - void **set_avoidance_layers** **(** :ref:`int<class_int>` value **)**
  73. - :ref:`int<class_int>` **get_avoidance_layers** **(** **)**
  74. A bitfield determining the avoidance layers for this obstacle. Agents with a matching bit on the their avoidance mask will avoid this obstacle.
  75. .. rst-class:: classref-item-separator
  76. ----
  77. .. _class_NavigationObstacle2D_property_radius:
  78. .. rst-class:: classref-property
  79. :ref:`float<class_float>` **radius** = ``0.0``
  80. .. rst-class:: classref-property-setget
  81. - void **set_radius** **(** :ref:`float<class_float>` value **)**
  82. - :ref:`float<class_float>` **get_radius** **(** **)**
  83. Sets the avoidance radius for the obstacle.
  84. .. rst-class:: classref-item-separator
  85. ----
  86. .. _class_NavigationObstacle2D_property_velocity:
  87. .. rst-class:: classref-property
  88. :ref:`Vector2<class_Vector2>` **velocity** = ``Vector2(0, 0)``
  89. .. rst-class:: classref-property-setget
  90. - void **set_velocity** **(** :ref:`Vector2<class_Vector2>` value **)**
  91. - :ref:`Vector2<class_Vector2>` **get_velocity** **(** **)**
  92. Sets the wanted velocity for the obstacle so other agent's can better predict the obstacle if it is moved with a velocity regularly (every frame) instead of warped to a new position. Does only affect avoidance for the obstacles :ref:`radius<class_NavigationObstacle2D_property_radius>`. Does nothing for the obstacles static vertices.
  93. .. rst-class:: classref-item-separator
  94. ----
  95. .. _class_NavigationObstacle2D_property_vertices:
  96. .. rst-class:: classref-property
  97. :ref:`PackedVector2Array<class_PackedVector2Array>` **vertices** = ``PackedVector2Array()``
  98. .. rst-class:: classref-property-setget
  99. - void **set_vertices** **(** :ref:`PackedVector2Array<class_PackedVector2Array>` value **)**
  100. - :ref:`PackedVector2Array<class_PackedVector2Array>` **get_vertices** **(** **)**
  101. The outline vertices of the obstacle. If the vertices are winded in clockwise order agents will be pushed in by the obstacle, else they will be pushed out. Outlines can not be crossed or overlap. Should the vertices using obstacle be warped to a new position agent's can not predict this movement and may get trapped inside the obstacle.
  102. .. rst-class:: classref-section-separator
  103. ----
  104. .. rst-class:: classref-descriptions-group
  105. Method Descriptions
  106. -------------------
  107. .. _class_NavigationObstacle2D_method_get_avoidance_layer_value:
  108. .. rst-class:: classref-method
  109. :ref:`bool<class_bool>` **get_avoidance_layer_value** **(** :ref:`int<class_int>` layer_number **)** |const|
  110. Returns whether or not the specified layer of the :ref:`avoidance_layers<class_NavigationObstacle2D_property_avoidance_layers>` bitmask is enabled, given a ``layer_number`` between 1 and 32.
  111. .. rst-class:: classref-item-separator
  112. ----
  113. .. _class_NavigationObstacle2D_method_get_navigation_map:
  114. .. rst-class:: classref-method
  115. :ref:`RID<class_RID>` **get_navigation_map** **(** **)** |const|
  116. Returns the :ref:`RID<class_RID>` of the navigation map for this NavigationObstacle node. This function returns always the map set on the NavigationObstacle node and not the map of the abstract obstacle on the NavigationServer. If the obstacle map is changed directly with the NavigationServer API the NavigationObstacle node will not be aware of the map change. Use :ref:`set_navigation_map<class_NavigationObstacle2D_method_set_navigation_map>` to change the navigation map for the NavigationObstacle and also update the obstacle on the NavigationServer.
  117. .. rst-class:: classref-item-separator
  118. ----
  119. .. _class_NavigationObstacle2D_method_get_rid:
  120. .. rst-class:: classref-method
  121. :ref:`RID<class_RID>` **get_rid** **(** **)** |const|
  122. Returns the :ref:`RID<class_RID>` of this obstacle on the :ref:`NavigationServer2D<class_NavigationServer2D>`.
  123. .. rst-class:: classref-item-separator
  124. ----
  125. .. _class_NavigationObstacle2D_method_set_avoidance_layer_value:
  126. .. rst-class:: classref-method
  127. void **set_avoidance_layer_value** **(** :ref:`int<class_int>` layer_number, :ref:`bool<class_bool>` value **)**
  128. Based on ``value``, enables or disables the specified layer in the :ref:`avoidance_layers<class_NavigationObstacle2D_property_avoidance_layers>` bitmask, given a ``layer_number`` between 1 and 32.
  129. .. rst-class:: classref-item-separator
  130. ----
  131. .. _class_NavigationObstacle2D_method_set_navigation_map:
  132. .. rst-class:: classref-method
  133. void **set_navigation_map** **(** :ref:`RID<class_RID>` navigation_map **)**
  134. Sets the :ref:`RID<class_RID>` of the navigation map this NavigationObstacle node should use and also updates the ``obstacle`` on the NavigationServer.
  135. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  136. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  137. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  138. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  139. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  140. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
  141. .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`