EditorWindowなど、非ランタイム・非MonoBehaviorでUnityWebRequestを使った通信を行う方法です。
Unity2018.3.9
ソースコード
MonoBehaviorを継承していないクラスではコルーチンを使うことができません。
よってUnityWebRequestは以下のようにして待ち受けます。
/// <summary> /// Editor上でUnityWebRequestで通信をする /// </summary> public static void EditorSendWebRequest(this UnityWebRequest self, Action onSuccess = null, Action onError = null) { self.SendWebRequest(); EditorApplication.CallbackFunction updateFunc = null; updateFunc = () => { if (self.isDone) { if (self.isHttpError || self.isNetworkError || !string.IsNullOrEmpty(self.error)) { onError?.Invoke(); } else { onSuccess?.Invoke(); } EditorApplication.update -= updateFunc; } }; EditorApplication.update += updateFunc; }