Hey, say I have 10 lights in my scene attached to a prefab, I can change all their values at once which is cool but when I change one of those lights individually in the scene hierarchy it then loses its ability to be controlled by the prefab. Why is this? I noticed the value that I have changed on the individual light appears in bold black.
When dealing with prefabs, if you change the value of a property on an instance of the prefab, you “override” that value.
In a simple example where the capsules with lights are all instances of a prefab asset:
If I take a light component on an instance of a prefab:
And change the colour:
Note that the Name of the Property (e.g.: Color) is now BOLD.
This indicates you have “overridden” this value. You have changed this value on the prefab instance making it different from the prefab asset. You have not broken the connection between the Instance and the Asset, you have simply overridden this value.
Now if you look into the Header of the GameObject, you will see this new line that is only available to prefabs:
If you do nothing, the color stays unique and overridden.
If you hit the Revert button the color will revert to that set in the prefab asset.
If you hit the Apply button, the color will be applied to the prefab asset and all of the instances will have that color.
This gives you the ability to change an instance and apply it to all of the other instances asset with apply, to change your mind and revert that change, and, if you choose to, have a unique value for that instance only.