SyncVars of a scene object are not synced

In my multiplayer game using UNet (Unity 5.1) I have a scene object with a Network Identity attached to it. It is not instantiated or spawned dynamically, but already exists in my scene on server and client (cf. Scene Objects in Unity manual). My problem is that while I can send RPC calls (ClientRpc) the synchronization of SyncVars does not work. They are just not synced.

The manual states that “…when the scene is fully loaded, NetworkServer.SpawnObjects() is called to activate these networked scene objects. This will be done automatically by the NetworkManager when the server scene finishes loading - or can be called directly by user code.” But how do I know that this has actually been done? And how would I do it manually?

After @KaldrisRelm’s comment I started trying some things myself again this morning and actually found one (simple) reason why syncing did not work in this case: changing a value in the editor does not trigger a sync.

I am a little irritated because after trying and searching so much yesterday I wouldn’t think the solution is so easy, but that’s the only thing I could find today and the rest seems to be working now.

Changing a SyncVar value in the editor on the server/host instance is actually handy for testing things. A workaround that helped me was to use an internal variable for syncing, and a public one which is adjusted in the editor. The internal variable is adjusted in the Update() method:

  [SyncVar]
  private bool triggerInternal;
  public bool trigger;

  void Update()
  {
    if (isServer)
    {
      triggerInternal = trigger;
    }
  }

Of course this adds some overhead to each frame, so if someone has a better solution I would be happy to hear it.

Sorry btw for answering my own question, but I hope the answer will help somebody else in the future.