- Home /
Automatically update prefab instance
When you edit a value on a built-in component (for example a Trail Renderer), that value is updated automatically on all instances of that prefab.
For example, if I have a Prefab called MyPrefab with a Trail Renderer component added.
Change the variable Time of the component to 1.
Instantiate that prefab via drag & drop.
Name the new object MyGameObject.
Check that the variable Time on MyGameObject is 1.
Go back to MyPrefab and change the parameter Time of the Trail Renderer component to 5.
Check on MyGameObject that the Time variable is 5.
So it is automatically updated. And, when I edit some variable on MyGameObject, it is shown in bold.
How can I achieve the same functionality in my custom **Editor**s? It doesn't happen automatically.
I can get some of the functionality if I call PrefabUtility.ResetToPrefabState in my OnInspectorGUI function. But by doing that, the object remains locked: I can't change values on MyGameObject, the values displayed are always the one from the Prefab.
Answer by Veehmot · Feb 23, 2012 at 03:30 AM
Wel.. I just call EditorUtility.SetDirty when I modify the GUI and that updates all the PrefabInstances.
Your answer
Follow this Question
Related Questions
Mark gameobject field as changed from prefab 2 Answers
Display changes in the editor made to a prefab 0 Answers
How to execute a script each time I add a certain prefab to the scene? 2 Answers
Any way to lock an object from changes in the editor? 4 Answers
I give up. My Foldout creates a very small space when expanded. How do I get rid of it? 0 Answers