Tips on how to handle common problems
Ubuntu 22.04 suffers from a GLIBC version mismatch, resulting in coherence baking failure. The current solution is to downgrade by one version of Ubuntu.
Revert all your Prefab Instance Overrides
Check that all your clients are using the same Schema ID.
On macOS, some versions of the Unity Hub don't install platform modules properly. This issue is fixed on version Unity Hub version 3.3.0. If you want to use a prior version, install one module at a time.
SDK 0.9 release removed dependency to the experimental package Platforms. As a result, your existing BuildConfiguration assets will have its defining script missing. To recreate the Simulator build configuration with the new pipeline, you can do it from the Simulators Module in coherence Hub.
When networked Entities are added by loading a scene additively, mind that the CoherenceMonoBridge
must be set to a singleton mode. In case of a non-singleton MonoBridge the Entity will search for a MonoBridge instance within its scene, and if none is found it will be created in that scene. This applies to both CoherenceSync
and LiveQuery
objects.
For a complete control over CoherenceMonoBridge
resolving you can use either CoherenceSync.MonoBridgeResolve
instance event or MonoBridgeStore.MonoBridgeResolve
global event. A CoherenceMonoBridge
instance provided by the MonoBridgeResolve
event takes precedence over the scene and singleton ones.
Sometimes the package cache gets stalled and after updating the coherence package you might find Unity still uses the old package version. Try Reimport all
or closing the project, deleting the Library
folder, and reopening the project again. It will clean and update packages cache, and use the version of coherence stated in manifest.json
.
Currently, coherence doesn't support networking prefabs with the same name. Doing so can yield duplicated definition errors. Best course of action is to rename your prefabs so they have different names.
We will support networking prefabs with the same name in the future.
If you have issues building Clients or Simulators, refer to troubleshooting.
When working with Prefab Variants, Unity leaks managed references (fields marked with [SerializeReference]
). This can make your prefab grow big and use more memory than necessary. Until Unity fixes this issue, we provide you with the ability to prune the leaked references. Pruning is only available for Unity 2021.2+.
Unity does not build WebGL because Python 2 is missing on latest macOS and Ubuntu 22. This is fixed on Unity 2020.3.40f1 and onwards.
Dots (.
) are not supported as part of WebGL build names.
There's a known bug preventing the removal of session-based objects from the scene after the Client disconnects. We're working on it.
LOD levels are not properly updated when queries move or resize.
When upgrading older projects to 0.9, you may get the following error after trying to connect to a Room/World:
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
If this happens, you should manually select your CoherenceSync Prefabs in the Inspector to trigger an OnGUI call.
If you have any problems after trying this, please let us know on our Discord so we can help you out.