I was getting the error "Some prefab instances were disconnected from their prefab parents because their FSMs were modified". I found a solution and everything works fine now, but thought I'd share what happened and my experience just in case anyone else runs into this.
I had a prefab with a couple of FSMs, both of which were FSM templates. After a while I realized I didn't want to use templates for these FSMs, and so I:
- copied all the states from the FSM
- removed the template from the FSM (clicking the template in the component, hitting delete)
- Then pasted those states into this FSM
- Deleting the template resets the name, so I had to change the name back to what I had named the template.
But this still didn't fix anything. Upon restarting Unity, the prefabs in the scene were disconnected (turned into normal scene objects), and I got the message again.
I even tried deleting the FSM component altogether, copy+pasting it into a new one. Still no luck.
So finally the last thing I did was rename the prefab, just adding a "_CURSED" to the end of it, to know it was the one giving me problems. Then I turned the sceneobject version into a new prefab (just making a new prefab, same contents). I deleted that old "_CURSED" one, and restarted Unity.
And that fixed it.