Newer
Older
DungeonShooting / DungeonShooting_Godot / src / test / TestNavigationPolygon.cs
using Godot;

/// <summary>
/// 测试动态创建 NavigationPolygon
/// </summary>
public partial class TestNavigationPolygon : Node2D
{
	public override void _Ready()
	{
		var nv = GetNode<NavigationRegion2D>("NavigationRegion2D");

		var navpoy = nv.NavigationPolygon;
		var outlines = navpoy.Outlines;
		var polygons = navpoy.Polygons;
		var vertices = navpoy.Vertices;

		var polygon = new NavigationPolygon();
		// polygon.Vertices = new Vector2[]
		// {
		// 	new Vector2(0,0), new Vector2(200,200), new Vector2(200, 0), new Vector2(0, 200),
		// 	new Vector2(50,50), new Vector2(150,150), new Vector2(150, 50), new Vector2(50, 150)
		// };
		// polygon.AddPolygon(new int[] { 0, 2, 1, 3 });
		// polygon.AddPolygon(new int[] { 4, 6, 5, 7 });

		polygon.AddOutline(new [] { new Vector2(0,0), new Vector2(200, 0), new Vector2(200,200), new Vector2(0, 200) });
		polygon.AddOutline(new [] { new Vector2(50,50), new Vector2(150, 50), new Vector2(150,150), new Vector2(50, 150) });
		polygon.MakePolygonsFromOutlines();
		
		nv.NavigationPolygon = polygon;
	}
}