浏览代码

PathFollow2D and PathFollow3D: don't set offset to NaN

Ricardo Buring 3 年之前
父节点
当前提交
eb9157df23
共有 2 个文件被更改,包括 2 次插入2 次删除
  1. 1 1
      scene/2d/path_2d.cpp
  2. 1 1
      scene/3d/path_3d.cpp

+ 1 - 1
scene/2d/path_2d.cpp

@@ -311,7 +311,7 @@ void PathFollow2D::set_offset(real_t p_offset) {
 		if (path->get_curve().is_valid()) {
 		if (path->get_curve().is_valid()) {
 			real_t path_length = path->get_curve()->get_baked_length();
 			real_t path_length = path->get_curve()->get_baked_length();
 
 
-			if (loop) {
+			if (loop && path_length) {
 				offset = Math::fposmod(offset, path_length);
 				offset = Math::fposmod(offset, path_length);
 				if (!Math::is_zero_approx(p_offset) && Math::is_zero_approx(offset)) {
 				if (!Math::is_zero_approx(p_offset) && Math::is_zero_approx(offset)) {
 					offset = path_length;
 					offset = path_length;

+ 1 - 1
scene/3d/path_3d.cpp

@@ -310,7 +310,7 @@ void PathFollow3D::set_offset(real_t p_offset) {
 		if (path->get_curve().is_valid()) {
 		if (path->get_curve().is_valid()) {
 			real_t path_length = path->get_curve()->get_baked_length();
 			real_t path_length = path->get_curve()->get_baked_length();
 
 
-			if (loop) {
+			if (loop && path_length) {
 				offset = Math::fposmod(offset, path_length);
 				offset = Math::fposmod(offset, path_length);
 				if (!Math::is_zero_approx(p_offset) && Math::is_zero_approx(offset)) {
 				if (!Math::is_zero_approx(p_offset) && Math::is_zero_approx(offset)) {
 					offset = path_length;
 					offset = path_length;