What I am seeing is this:
A Prefab in a scene. Let's call it PrefabX
The PrefabX is not changed by me at any point in the following.
The PrefabX has a value in a field in an FSM set to be a global variable.
Many prefabs in the whole project has many references to global variables, some are instantiated in this scene, some in other scenes.
I import a new Unity Package into the project. It is from third party, and has zero PlayMaker functionalities in it.
As seen before, all the sudden Playmaker wanrs me of ..maybe 28 errors in my project - that had a green light just before.
I press play, and they all vanish.
Did I not press play but looked into the console and the affected Prefabs, I would be warned about this 'Prefabs not allowed to reference to scene objects'.
Recently I have been able to positively confirm what I was uncertain about earlier: PrefabX had 2 references to global variables, and both where reset to 'none' at playtime: The game did not work, I looked and they where set to 'None'.
I set them again, saved and refreshed, did various things to confirm that the prefab was using the Global variable 2 places.. press play, and viola! - set to None again.
Off course it's pretty hard to debug when one is in reality trying to debug ones own code - but the above is 100% confirmed.
Only other clue I can give is that I'm pretty sure that the affected PrefabX was shown in the editor just prior to pressing Play.
...
So: You tell me that what I do IS in fact the right way, the way you suggest to do it? (Let Game objects set themselves to be 'represented' by global variables at runtime?)
If so, may I suggest a tool set to work with this? Because right now, if 10 prefabs are going to reference 1 other Prefab, the 10 first have to wait for the 1 to identify itself.
In other words because of this 'system', all Game objects has to wait a couple of frames at game start to make sure their freinds have represented themselves to their 'cover address' in a Global GameObject variable.
That makes the 'identify and wait' a very standard thing to do - and so maybe there should be an action or setting for this?