浏览代码

Handle last baked vector index early

Nikola Bunjevac 2 年之前
父节点
当前提交
e903362269
共有 1 个文件被更改,包括 4 次插入4 次删除
  1. 4 4
      scene/resources/curve.cpp

+ 4 - 4
scene/resources/curve.cpp

@@ -1667,6 +1667,10 @@ Vector3 Curve3D::sample_baked_up_vector(real_t p_offset, bool p_apply_tilt) cons
 		idx = (end + start) / 2;
 	}
 
+	if (idx == count - 1) {
+		return p_apply_tilt ? r[idx].rotated((rp[idx] - rp[idx - 1]).normalized(), rt[idx]) : r[idx];
+	}
+
 	real_t offset_begin = baked_dist_cache[idx];
 	real_t offset_end = baked_dist_cache[idx + 1];
 
@@ -1675,10 +1679,6 @@ Vector3 Curve3D::sample_baked_up_vector(real_t p_offset, bool p_apply_tilt) cons
 
 	real_t frac = (p_offset - offset_begin) / idx_interval;
 
-	if (idx == count - 1) {
-		return p_apply_tilt ? r[idx].rotated((rp[idx] - rp[idx - 1]).normalized(), rt[idx]) : r[idx];
-	}
-
 	Vector3 forward = (rp[idx + 1] - rp[idx]).normalized();
 	Vector3 up = r[idx];
 	Vector3 up1 = r[idx + 1];