Scripting: Client vs Simulator
When scripting Simulators, we need mechanisms to tell them apart.
Am I a Simulator ?
Ask Coherence.SimulatorUtility.IsSimulator.
using Coherence;
using UnityEngine;
public class SimualatorClass : MonoBehaviour
{
public void Awake()
{
if (SimulatorUtility.IsSimulator)
{
// I'm a simulator!
}
}
}There are two ways you can tell coherence if the game build should behave as a Simulator:
COHERENCE_SIMULATORpreprocessor define.--coherence-simulation-servercommand-line argument.
Connect and ConnectionType
Connect and ConnectionTypeThe Connect method on Coherence.Network accepts a ConnectionType parameter.
COHERENCE_SIMULATOR
Whenever the project compiles with the COHERENCE_SIMULATOR preprocessor define, coherence understands that the game will act as a Simulator.

Command-line argument
Launching the game with --coherence-simulation-server will let coherence know that the loaded instance must act as a Simulator.
Server-side simulation
You can define who simulates the object in the CoherenceSync inspector.

Auto-reconnect
The sample UI provided includes auto-reconnect behaviour out of the box for Room- and World-based simulators. The root GameObject has AutoReconnect components attached to it.

Last updated
Was this helpful?

