コード例 #1
0
        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);
        }
コード例 #2
0
        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;
        }