瀏覽代碼

Merge pull request #85189 from QbieShay/qbe/fix-emission-at-end

Correctly emit sub-emitter's emission at the end
Rémi Verschelde 1 年之前
父節點
當前提交
3cb9e84cde
共有 1 個文件被更改,包括 3 次插入3 次删除
  1. 3 3
      scene/resources/particle_process_material.cpp

+ 3 - 3
scene/resources/particle_process_material.cpp

@@ -1136,9 +1136,9 @@ void ParticleProcessMaterial::_update_shader() {
 				code += "	if (COLLIDED) emit_count = sub_emitter_amount_at_collision;\n";
 			} break;
 			case SUB_EMITTER_AT_END: {
-				code += "	float unit_delta = DELTA/LIFETIME;\n";
-				code += "	float end_time = CUSTOM.w * 0.95;\n"; // if we do at the end we might miss it, as it can just get deactivated by emitter
-				code += "	if (CUSTOM.y < end_time && (CUSTOM.y + unit_delta) >= end_time) emit_count = sub_emitter_amount_at_end;\n";
+				code += "	if ((CUSTOM.y / CUSTOM.w * LIFETIME) > (LIFETIME - DELTA)) {\n";
+				code += "		emit_count = sub_emitter_amount_at_end;\n";
+				code += "	}\n";
 			} break;
 			default: {
 			}