Fixed Populating MultimeshInstance Crash

When populating a MultimeshInstance (node), Godot would set the
new Multimesh's color and custom data format as the current node's
multimesh, which would cause a crash if node's multimesh is null.

Populate Function will now check if node has a multimesh or not, and
set the new multimesh with default (NONE) values if node's multimesh is
null.

Fixes Issue #61553
This commit is contained in:
Arsh Panesar 2022-06-05 19:38:41 +05:30
parent 5f9bc7ea5a
commit 84a6407286
1 changed files with 9 additions and 2 deletions

View File

@ -160,8 +160,15 @@ void MultiMeshEditor::_populate() {
int instance_count = populate_amount->get_value(); int instance_count = populate_amount->get_value();
multimesh->set_transform_format(MultiMesh::TRANSFORM_3D); multimesh->set_transform_format(MultiMesh::TRANSFORM_3D);
if (node->get_multimesh().is_null()) {
multimesh->set_color_format(MultiMesh::COLOR_NONE);
multimesh->set_custom_data_format(MultiMesh::CUSTOM_DATA_NONE);
} else {
multimesh->set_color_format(node->get_multimesh()->get_color_format()); multimesh->set_color_format(node->get_multimesh()->get_color_format());
multimesh->set_custom_data_format(node->get_multimesh()->get_custom_data_format()); multimesh->set_custom_data_format(node->get_multimesh()->get_custom_data_format());
}
multimesh->set_instance_count(instance_count); multimesh->set_instance_count(instance_count);
float _tilt_random = populate_tilt_random->get_value(); float _tilt_random = populate_tilt_random->get_value();