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)); }
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; }