Skip to content

Commit 7de038d

Browse files
committed
Add support for Editor Coroutines
1 parent 7589c39 commit 7de038d

File tree

3 files changed

+31
-5
lines changed

3 files changed

+31
-5
lines changed

src/Proyecto26.RestClient/Helpers/RequestHelperExtension.cs

+11-1
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,6 @@ public bool IsAborted
106106

107107

108108
private bool _defaultContentType = true;
109-
110109
/// <summary>
111110
/// Enable or Disable Content Type JSON by default
112111
/// </summary>
@@ -117,6 +116,17 @@ public bool DefaultContentType
117116
set { _defaultContentType = value; }
118117
}
119118

119+
private bool _editorCoroutine = false;
120+
/// <summary>
121+
/// Enable to starts en editor coroutine instead
122+
/// </summary>
123+
/// <value>A boolean to know if the request is working on Editor without running the game</value>
124+
public bool EditorCoroutine
125+
{
126+
get { return _editorCoroutine; }
127+
set { _editorCoroutine = value; }
128+
}
129+
120130
/// <summary>
121131
/// Abort the request manually
122132
/// </summary>

src/Proyecto26.RestClient/Helpers/StaticCoroutine.cs

+16
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
using UnityEngine;
22
using System.Collections;
3+
#if UNITY_EDITOR
4+
using Unity.EditorCoroutines.Editor;
5+
#endif
36

47
namespace Proyecto26
58
{
@@ -25,5 +28,18 @@ public static Coroutine StartCoroutine(IEnumerator coroutine)
2528
{
2629
return Runner.StartCoroutine(coroutine);
2730
}
31+
32+
public static void StartRequest(bool useEditor, IEnumerator coroutine)
33+
{
34+
#if UNITY_EDITOR
35+
if (useEditor)
36+
{
37+
EditorCoroutineUtility.StartCoroutineOwnerless(coroutine);
38+
return;
39+
}
40+
#endif
41+
StartCoroutine(coroutine);
42+
return;
43+
}
2844
}
2945
}

src/Proyecto26.RestClient/RestClient.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public static void ClearDefaultHeaders()
9090
/// <param name="callback">A callback function that is executed when the request is finished.</param>
9191
public static void Request(RequestHelper options, Action<RequestException, ResponseHelper> callback)
9292
{
93-
StaticCoroutine.StartCoroutine(HttpBase.DefaultUnityWebRequest(options, callback));
93+
StaticCoroutine.StartRequest(options.EditorCoroutine, HttpBase.DefaultUnityWebRequest(options, callback));
9494
}
9595

9696
/// <summary>
@@ -101,7 +101,7 @@ public static void Request(RequestHelper options, Action<RequestException, Respo
101101
/// <typeparam name="T">The element type of the response.</typeparam>
102102
public static void Request<T>(RequestHelper options, Action<RequestException, ResponseHelper, T> callback)
103103
{
104-
StaticCoroutine.StartCoroutine(HttpBase.DefaultUnityWebRequest<T>(options, callback));
104+
StaticCoroutine.StartRequest(options.EditorCoroutine, HttpBase.DefaultUnityWebRequest<T>(options, callback));
105105
}
106106

107107
/// <summary>
@@ -168,7 +168,7 @@ public static void GetArray<T>(string url, Action<RequestException, ResponseHelp
168168
public static void GetArray<T>(RequestHelper options, Action<RequestException, ResponseHelper, T[]> callback)
169169
{
170170
options.Method = UnityWebRequest.kHttpVerbGET;
171-
StaticCoroutine.StartCoroutine(HttpBase.DefaultUnityWebRequest<T>(options, callback));
171+
StaticCoroutine.StartRequest(options.EditorCoroutine, HttpBase.DefaultUnityWebRequest<T>(options, callback));
172172
}
173173

174174
/// <summary>
@@ -273,7 +273,7 @@ public static void PostArray<T>(string url, string bodyString, Action<RequestExc
273273
public static void PostArray<T>(RequestHelper options, Action<RequestException, ResponseHelper, T[]> callback)
274274
{
275275
options.Method = UnityWebRequest.kHttpVerbPOST;
276-
StaticCoroutine.StartCoroutine(HttpBase.DefaultUnityWebRequest(options, callback));
276+
StaticCoroutine.StartRequest(options.EditorCoroutine, HttpBase.DefaultUnityWebRequest(options, callback));
277277
}
278278

279279
/// <summary>

0 commit comments

Comments
 (0)