static NetworkingService() { #if UNITY_EDITOR if (!EditorApplication.isPlaying) { return; } #endif settings = Resources.Load <NetworkingSettings>("NetworkingSettings"); matchmakingHandler = new MatchmakingHandler(); serialization = new SerializableTypes(); eventHandler = new MultiplayerEventHandler(serialization); clientHandler = new ClientHandler(); roomHandler = new RoomHandler(); callbackHandler = new CallbackHandler(clientHandler, roomHandler); resourceHandler = new ResourceHandler(settings, eventHandler); serialization.RegisterCustomTypesInternal(); PhotonNetwork.SerializationRate = settings.SerializationRate; PhotonNetwork.SendRate = settings.SendRate; PhotonNetwork.AutomaticallySyncScene = settings.SynchronizeClientScenes; PhotonNetwork.AddCallbackTarget(callbackHandler); PhotonNetwork.AddCallbackTarget(eventHandler); }
public ResourceHandler(NetworkingSettings settings, MultiplayerEventHandler eventHandler) { this.settings = settings; eventHandler.AddListener(InternalEvent.SceneObjectSpawn, OnSceneObjectSpawn); eventHandler.AddListener(InternalEvent.StaticObjectSpawn, OnStaticObjectSpawn); eventHandler.AddListener(InternalEvent.StaticObjectDestroy, OnStaticObjectDestroy); VerifyMovingObjects(); VerifyStaticObjects(); CreatePoolParents(); SceneManager.sceneUnloaded += OnSceneUnloaded; Application.quitting += OnAppQuitting; PhotonNetwork.PrefabPool = this; }