Here is the text within it… if that helps…
To understand what types of changes will break a link between a Unity prefab and the FBX file it was created from.
1 FBX Exported from Maya or other 3d package
Enlightenment, but also a better grasp on when prefabs will need to be updated and what kind of changes will automatically come across when the FBX is updated and why.
Meta Data - A term used for the “Meta” file associated with each asset when the project is set to “Use Source Control”. (Details on Project Settings Coming Soon)
**GameObject** - Any Unity object placed inside a scene, could also be called a transform or just object from the content viewpoint.
**Prefab** - A Unity object that acts an interface for the user to directly customize, script or otherwise tweak for Unity to store. This is a Unity copy of the transforms of a particular FBX or GameObject. When saved in readable format, it is written in [YAML]([yaml.org/](http://yaml.org/)), a human readable markup language.
**Scene** - A stand alone file that holds references to other objects as well as holds unique objects withing it.
**Scene Hierarchy** - Referring to the currently opened “Scene” within Unity. Any object that is loading inside the scene is essentially “part of” that Scene’s hierarchy. When the “Scene” is saved, the objects are then written inside the “Scene” file.
**Project Hierarchy** - This is the same as a windows explorer or finder window. It is a view of the file structure of the Unity project. It will NOT show any meta files as they are seen as the content meta data. It also only shows the files that Unity knows how to process, unknown formats will simply have a broken looking icon.
#How to Make A Prefab
This is done simply by dragging a transform, or GameObject from the “Scene Hierarchy” to a location in the “Project Hierarchy”. The Object will then turn blue, notifying you of a new linkage between the two files.
#What Does a Prefab Do?
It does a lot, but without getting in to the full breadth of its use cases, the most global description: it creates a file that can be referenced in multiple places but can still be easily editing from the “source” and have those changes go across multiple references. Much like the [animation references](gamesmaderight.com/maya-anim … eferences/)
#Important Unity Colors:
Different colors are used to indicate the “Status” of a prefab or GameObject inside your scene view.
Black- These files are unique to this scene. In their current state, they cannot be used or reference in any other scene.
Blue- Indicates that there is a “Prefab Link” for this file or a “project version” that it is getting its content and information from.
Red- Shows that the original reference to this file is deleted or missing and is potentially broken.
#Scene Changes VS Project Changes
Changes can be made to either the “Project” version of a prefab or the “Scene” version.
Once a prefab is placed inside a scene, it has the ability to have Scene specific Changes. These are changes that are stored within the scenes itself and will NOT be pushed to other references of this prefab in other scenes. This is typically what you want for Transform values as these are unique to the placement of that object within the scene. Component Changes are sometimes necessary to keep in the scene as well, but often those changes should be propagated to other instances of that prefab. This can be done by hitting Apply in the inspector. This will then force the update of the “Project” version and all the other instances of those objects, provided the other objects do *not have scene specific changes on the component already.
Scene specific changes are highlighted in the inspector with Bold text on the components that have been changed locally.
Scene specific changes are considered higher priority than prefab changes. So will override any changes made at the prefab level
Prefab objects inside the project can also be directly edited. Changes made here will get pushed automatically to all the instances of that object, provided that there are not scene specific changes on those components already. The limitation of working inside the Project View is that it will only display one level deep of the hierarchy. Components on the root or child of the root can be edited, but nothing below that. If edits deeper in the hierarchy are desired, its best to drag that object into the scene, make the changes then hit the “Apply” button in the inspector.
Make sure prefabs are stored (saved) with no transforms on them. This means, effectively, zeros across translate and rotation and One on the scales
#What Links A Prefab and FBX
At its core, when a Prefab is made from and FBX file it is essentially a reduced copy of the FBX. It duplicates the hierarchy, and creates unity components that will correlate with the object in the FBX itself, however, this is just a shell or skeleton of the FBX. Unity uses components on the GameObject or Transform to reference back certain things inside the original FBX file.
Meshes both Skinned and static, Avatarsand Animations. If the source FBX file is deleted, the hierarchy of the prefab will remain, but the links to the meshes will be destroyed and will no longer display.
The components that will be disconnected from a prefab when the FBX is deleted can be found in the project window, underneath the root object of the FBX:
In order from the image these are:
- Mesh Component
- Animation Component
- Avatar Component
#What Changes WONT Update from and FBX
One of the biggest pain points of prefabs is that there are certain changes that will not come across to the prefab automatically. It requires often a full rebuild of those prefabs, which can get annoying, to say the least, especially when you have large numbers of custom components to hook up. The best advice I have to is automate the creation of these prefabs by creating custom editor scripts that will take that FBX file and output the prefab for you either automatically, or through a editor setup process.
FBX edits the will update in an FBX
Static Mesh Changes - Meshes WITHOUT skinning information.
UV Changes - Updating or changing the UV layout of a mesh
Animation Changes - Updating keyframes in an animation
FBX edits that will not update inside the Prefab:
Skinning Changes - If you update or change the skinning on a model.
Hierarchy Changes - This includes renaming or reordering the hierarchy.