Przeglądaj źródła

Merge pull request #23242 from nekomatata/mesh-instance

Get surface material count in MeshInstance for scripts
Rémi Verschelde 6 lat temu
rodzic
commit
b33acc3cb6
2 zmienionych plików z 7 dodań i 0 usunięć
  1. 6 0
      scene/3d/mesh_instance.cpp
  2. 1 0
      scene/3d/mesh_instance.h

+ 6 - 0
scene/3d/mesh_instance.cpp

@@ -253,6 +253,11 @@ void MeshInstance::_notification(int p_what) {
 	}
 }
 
+int MeshInstance::get_surface_material_count() const {
+
+	return materials.size();
+}
+
 void MeshInstance::set_surface_material(int p_surface, const Ref<Material> &p_material) {
 
 	ERR_FAIL_INDEX(p_surface, materials.size());
@@ -359,6 +364,7 @@ void MeshInstance::_bind_methods() {
 	ClassDB::bind_method(D_METHOD("set_skeleton_path", "skeleton_path"), &MeshInstance::set_skeleton_path);
 	ClassDB::bind_method(D_METHOD("get_skeleton_path"), &MeshInstance::get_skeleton_path);
 
+	ClassDB::bind_method(D_METHOD("get_surface_material_count"), &MeshInstance::get_surface_material_count);
 	ClassDB::bind_method(D_METHOD("set_surface_material", "surface", "material"), &MeshInstance::set_surface_material);
 	ClassDB::bind_method(D_METHOD("get_surface_material", "surface"), &MeshInstance::get_surface_material);
 

+ 1 - 0
scene/3d/mesh_instance.h

@@ -76,6 +76,7 @@ public:
 	void set_skeleton_path(const NodePath &p_skeleton);
 	NodePath get_skeleton_path();
 
+	int get_surface_material_count() const;
 	void set_surface_material(int p_surface, const Ref<Material> &p_material);
 	Ref<Material> get_surface_material(int p_surface) const;