Bläddra i källkod

fixed navigation tile issue, fixes #1581

Juan Linietsky 10 år sedan
förälder
incheckning
3fddc9e55a
1 ändrade filer med 11 tillägg och 9 borttagningar
  1. 11 9
      scene/2d/tile_map.cpp

+ 11 - 9
scene/2d/tile_map.cpp

@@ -406,17 +406,19 @@ void TileMap::_update_dirty_quadrants() {
 
 			if (navigation) {
 				Ref<NavigationPolygon> navpoly = tile_set->tile_get_navigation_polygon(c.id);
-				Vector2 npoly_ofs = tile_set->tile_get_navigation_polygon_offset(c.id);
-				Matrix32 xform;
-				xform.set_origin(offset.floor()+q.pos);
-				_fix_cell_transform(xform,c,npoly_ofs+center_ofs,s);
+				if (navpoly.is_valid()) {
+					Vector2 npoly_ofs = tile_set->tile_get_navigation_polygon_offset(c.id);
+					Matrix32 xform;
+					xform.set_origin(offset.floor()+q.pos);
+					_fix_cell_transform(xform,c,npoly_ofs+center_ofs,s);
 
-				int pid = navigation->navpoly_create(navpoly,nav_rel * xform);
+					int pid = navigation->navpoly_create(navpoly,nav_rel * xform);
 
-				Quadrant::NavPoly np;
-				np.id=pid;
-				np.xform=xform;
-				q.navpoly_ids[E->key()]=np;
+					Quadrant::NavPoly np;
+					np.id=pid;
+					np.xform=xform;
+					q.navpoly_ids[E->key()]=np;
+				}
 			}