Beispiel #1
0
 public RsWinFormsClient(ClientConfiguration config, Graphics graphicsObject, IRsSocketFactory socketFactory)
     : base(config, new DefaultBufferFactory(), new DefaultRunnableStarterStrategy(), socketFactory)
 {
     if (config == null)
     {
         throw new ArgumentNullException(nameof(config));
     }
     GraphicsObject = graphicsObject ?? throw new ArgumentNullException(nameof(graphicsObject));
 }
Beispiel #2
0
 public GladMMORsUnityWebGLClient(ClientConfiguration config,
                                  UnityRsGraphics graphicsObject,
                                  [JetBrains.Annotations.NotNull] MonoBehaviour clientMonoBehaviour,
                                  IRsSocketFactory socketFactory,
                                  ITaskDelayFactory taskDelayFactory,
                                  [JetBrains.Annotations.NotNull] GameManager rootGameManager)
     : base(config, graphicsObject, clientMonoBehaviour, socketFactory, taskDelayFactory)
 {
     GameManagerService = rootGameManager ?? throw new ArgumentNullException(nameof(rootGameManager));
     this.LoggedIn.OnVariableValueChanged += GameManagerService.OnLoginStateChanged;
 }
        public RsUnityWebGLClient(ClientConfiguration config, UnityRsGraphics graphicsObject, [NotNull] MonoBehaviour clientMonoBehaviour, IRsSocketFactory socketFactory, ITaskDelayFactory taskDelayFactory)
            : base(config, graphicsObject, new WebGLRunnableStarterStrategy(), socketFactory)
        {
            if (config == null)
            {
                throw new ArgumentNullException(nameof(config));
            }

            ClientMonoBehaviour = clientMonoBehaviour ?? throw new ArgumentNullException(nameof(clientMonoBehaviour));

            //Only need to override this for WebGL.
            Sprite.ExternalLoadImageHook += ExternalLoadImageHook;
            TaskDelayFactory              = taskDelayFactory;

            //This is a hack to make sure that WebGL doesn't cut off frames in the background
            //causing disconnections.
            Time.maximumDeltaTime = 20.0f;

            //Can't do this in the editor.
            if (!RsUnityPlatform.isInEditor)
            {
                SetOnPageVisible(DelegateOnVisibilityChangeVisible);
                SetOnPageInvisible(DelegateOnVisibilityChangeInvisible);
                InitializePageVisibilityCallbacks();
            }

            //WebGL probably forces vsync already but we should ensure it.
            QualitySettings.vSyncCount = 1;
        }