Adding new Items from blender

Hiiiii, I would like to ask a question about Unity. I want to add new items to a character. I export the new items from Blender using the same rigging with the different animations. When I import it into Unity, I make it a child of the main character as another asset. Then I undo the prefab and the object can be seen in the inspector, but when I press play and put it in game mode, the item disappears. When I stop the game, it has also disappeared from the scene. The item is left empty in the inspector. I have tried changing the rigging to the original one that Unity uses for that character. Do you know how I can solve this? Thank you very much.

At the moment you import a Blender item, Unity writes some stuff down about it. You can see what it records in the .meta file associated with your Blender file.

If you make a prefab or put it in your scene, that also copies that state.

If you then change the Blender file to add / remove items, the above two things do NOT automatically update, leading to mass confusion.

Generally, if you change anything structure-wise in a Blender file, expect a full reimport and / or revisit. This means it may be advantageous to break things into separate files and import and combine them yourself, giving better control over the final composition.

Here some more random Blender3D notes:

Costs of using Blender files directly vs exporting to FBX:

Unity imports Blender3D objects as FBX via a little Python script:

The Python script that Unity uses (substitute your Unity version number or search) to import:

./Hub/Editor/2020.2.1f1/Unity.app/Contents/Tools/Unity-BlenderToFBX.py

More on fixing it:

Blender3D objects used as trees / detail in Unity3D terrain (See the second half of this response)

Probuilder and Probuilderize and Blender:

Some more potentially-useful info:

Updating Blender files without breaking your prefabs:

When I work in Blender3D for Unity3D use, I follow these organizational rules:

  • use Empty Blender Objects as folders: they come out as an extra GameObject

  • ALWAYS parent everything to a single Empty, even a single object

  • ALWAYS apply all Scales and Rotations on every Transform throughout your hierarchy.

  • put as few objects in a given .blend file as possible, combining them in Unity into a prefab

  • REMOVE unnecessary items (Light, Camera, etc.)

  • use good names for your Blender3D objects and NEVER RENAME them after Unity sees them

  • don’t even think about final Materials or Textures in Blender. Set the mesh to use N different materials, but always set up the materials within Unity and disregard what gets imported.

1 Like