What is the best way to determine if meshes intersect/overlap?

Godot Version



I am writing a program to generate a random dungeon map. Each room is a blender file with a mesh that defines where the walls are. In Godot that turns into a MeshInstance3D with an ArrayMesh.
I need to determine if the next room I am trying to place overlaps any of the existing rooms. I think I could do this with Area3Ds, but they only get updated after _process (). Is there a more direct way to compute if meshes overlap, or should I use Area3Ds and await for the next process frame?