Four grueling days later, I finally figured out why my placed prefabs behave differently than my instantiated prefabs. While there were many similar issues reported on the forums to this effect, none were able to solve my particular problem, and so I thought to quickly mention here for any future Googlers out there.
What it comes down to, at least for me, is that the order in which Unity was executing the prefab .js scripts (listed in the inspector) are different for placed prefabs than that of instantiated prefabs.
In my case, one script is executing gravity and orientation on the GameObject, while the other script is executing a Lerp/Slerp; both of which in their FixedUpdate() functions. I am pleased to have finally figured this out, however am curious if anyone has an explanation as to why would a placed prefab choose to execute the scripts in a different order than the instantiated prefab…when it is the same prefab?
Cheers -
Script execution order is unreliable; you should avoid creating situations dependent on execution order if at all possible. In this particular case you could have whatever script must be called first manually trigger the “FixedUpdate” behavior on the second script (by naming the method something other than FixedUpdate and making it public).
Unity does have support for controlling the execution order, you can set it in “Edit → Project Settings → Script Execution Order”
I have not tried it in a while, I checked it out when the first added it but it wasn’t 100% reliable. Anyhow, it’s still good practice to consider every “FixedUpdate” behavior to be unreliably ordered and structure your environment accordingly (it’s just one less thing that can go wrong). However, feel free to look into “Script Execution Order” and use that if you’d prefer.
I have similar problem vith instantiated prefab. It’s TPCharacter actualy, and it was working properly when was placed in scene. I have some clik and move script on it, and some projectile scripts.
When I tried to instantiate it in game, my primar script, clik and move, start jittering, not always but some time. All other scripts that are interacting with this primar script stoped working. I have tied to fix it, but I don’t know what could be wrong.