void Start() { Serialisation.InitialiseDevelopmentSerialisation(); View = GetComponent <PhotonView>(); ES = GetComponent <EventSource>() ?? FindObjectOfType <EventSource>() ?? gameObject.AddComponent <EventSource>(); EM = GetComponent <EntityManager>() ?? FindObjectOfType <EntityManager>() ?? gameObject.AddComponent <EntityManager>(); PUNConnecter = GetComponent <PUNConnecter>() ?? FindObjectOfType <PUNConnecter>() ?? gameObject.AddComponent <PUNConnecter>(); PUNESSynchroniser = GetComponent <PUNSynchroniser>() ?? FindObjectOfType <PUNSynchroniser>() ?? gameObject.AddComponent <PUNSynchroniser>(); PlayerRegister = new PlayerRegistry(EM, 5); if (!PUNConnecter.ConnectOnStart) { PUNConnecter.StartPhoton(); } PUNConnecter.RegisterGuaranteedConnectedCallback(() => { Assert.IsTrue(PhotonNetwork.inRoom); PUNESSynchroniser.SetupAndSynchronise(OnSynchronisedAndReady); }); }