Duplicate mesh object in Blender or Unity?

Hi, I’ve tried to do some testing but my results seem unclear to me.

Here is an example:

Let’s say you have a vehicle with 5 engines (don’t ask haha), that are pretty detailed. I have these as 5 distinct mesh objects in blender, all just duplicates of each other.

In Unity I just import the .blend file and bring it into the scene.

My question is, based on how batching? might work and number of verts etc etc is it better to import a single engine .blend file and then duplicate that gameobject 5 times in Unity, or does it all come out to be the same?

The answer is very simple. Duplicate in Unity, because the mesh will only be once in the memory. If you duplicate it in Blender, there are going to be five identical meshes and each of them is in the memory.
You should definitely duplicate in Unity, even if the batching may not be working.

OK, so disregarding vertex count, etc etc, at the end of the day it’s less memory usage so that’s why it’s obvious to duplicate in Unity.

You know how when you import the blend file, it has all the submeshes? Even though the blender file would have 5 different submeshes, I could select each mesh renderer in Unity, and select the same blender submesh. This would allow me to place the objects easier in Blender than unity.

Am I thinking about this right?

I am not sure how practical this would be. E.g. if you update the mesh in Blender, it may not be updated in Unity like that, but I am not sure whether this is really the case. You need to find a practical way that works in general and also for you. I have never made something like that.

When I create multiple objects in Blender, and then import that blend file into Unity, the blend file acts like one big parent and then all the objects are basically submeshes then, right?

Unity decides which one of those submeshes to load into the gpu right? It doesn’t just blatantly load every submesh in that .blend file, correct? So if I made 4 cubes in blender as separate mesh objects, import the blend, drag it into scene, it will show 4 cubes, each referencing their own submesh in the .blend. However, I could manually tell all the cubes to reference the cube1 mesh in the blend file.

Would it load all 4 cube mesh’s or just the one since it’s only one referenced? Basically it just becomes 4 instances of that one mesh to Unity then?

Just to clarify the terms: If you have several meshes in Unity that are children of an object, those or not submeshes, but just usual meshes. If you have one mesh that uses several materials, each material requires its own submesh. What you see in Unity, is just one mesh, consisting of several submeshes.

To answer your question, just one cube would be loaded, the remaining ones would be removed by Unity.

My term submesh mean more for a single blend file that has multiple “mesh objects” in it, as if you created two distinct cubes in blender and then imported that blend file, there are “two submeshes” for that blend object, is that the right way to put it?

Technically it is correct.
But be careful with the term submesh, because in Unity a submesh has a different meaning. So take care, because it may lead to confusion.