Showing posts from November, 2016

A UI thread dispatcher for Unity3D

I've recently been working on implementing an IHttpService that can work outside of a MonoBehaviour and call out to web services asynchronously. Rather than providing my IHttpService.JsonPost method with callbacks I decided to have it return a Promise, the code for which I took from this  Real Serious Games  GitHub repository. The problem is that when you use WebClient's async methods they call back the Complete events on the worker thread, so code like this won't work because you cannot manipulate UI from any thread other than the main one. httpService.JsonPost<MyInfo>(url)   .Then(myInfo => someTextUiObject.text = myInfo.Name); And there seems to be no kind of thread Dispatcher in Unity3D for UI updates as there is in Windows.Forms - so I wrote my own. using System.Collections; using System; using System.Threading; using System.Collections.Generic; using UnityEngine; public class UiThreadDispatcher : Singleton<MonoBehaviour> {     static volatil