From 6a68d3e5c03331195965dee7ad4d53e6eeb5a306 Mon Sep 17 00:00:00 2001 From: Shawn Hardern <126725649+ShawnHardern@users.noreply.github.com> Date: Fri, 23 Aug 2024 13:19:45 +0100 Subject: [PATCH] Add C# examples to Using NavigationRegions Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com> Co-authored-by: Raul Santos --- .../navigation_using_navigationregions.rst | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/tutorials/navigation/navigation_using_navigationregions.rst b/tutorials/navigation/navigation_using_navigationregions.rst index 97a7d3afb..a2ff94cd9 100644 --- a/tutorials/navigation/navigation_using_navigationregions.rst +++ b/tutorials/navigation/navigation_using_navigationregions.rst @@ -45,12 +45,32 @@ The region RID can then be obtained from NavigationRegion Nodes with ``get_rid() var navigationserver_region_rid: RID = get_rid() + .. code-tab:: csharp 2D C# + + public partial class MyNavigationRegion2D : NavigationRegion2D + { + public override void _Ready() + { + Rid navigationServerRegionRid = GetRid(); + } + } + .. code-tab:: gdscript 3D GDScript extends NavigationRegion3D var navigationserver_region_rid: RID = get_rid() + .. code-tab:: csharp 3D C# + + public partial class MyNavigationRegion3D : NavigationRegion3D + { + public override void _Ready() + { + Rid navigationServerRegionRid = GetRid(); + } + } + New regions can also be created with the NavigationServer API and added to any existing map. If regions are created with the NavigationServer API directly they need to be assigned a navigation map manually. @@ -65,6 +85,18 @@ If regions are created with the NavigationServer API directly they need to be as var default_map_rid: RID = get_world_2d().get_navigation_map() NavigationServer2D.region_set_map(new_region_rid, default_map_rid) + .. code-tab:: csharp 2D C# + + public partial class MyNode2D : Node2D + { + public override void _Ready() + { + Rid newRegionRid = NavigationServer2D.RegionCreate(); + Rid defaultMapRid = GetWorld2D().NavigationMap; + NavigationServer2D.RegionSetMap(newRegionRid, defaultMapRid); + } + } + .. code-tab:: gdscript 3D GDScript extends Node3D @@ -74,6 +106,18 @@ If regions are created with the NavigationServer API directly they need to be as var default_map_rid: RID = get_world_3d().get_navigation_map() NavigationServer3D.region_set_map(new_region_rid, default_map_rid) + .. code-tab:: csharp 3D C# + + public partial class MyNode3D : Node3D + { + public override void _Ready() + { + Rid newRegionRid = NavigationServer3D.RegionCreate(); + Rid defaultMapRid = GetWorld3D().NavigationMap; + NavigationServer3D.RegionSetMap(newRegionRid, defaultMapRid); + } + } + .. note:: Navigation regions can only be assigned to a single navigation map.