(Unity) Как правильно пробросить return, работая с корутинами
Хочу дождаться ответ от сервера и вернуть его прямо из того же метода с отправкой данных. В данном случае видно, что возвращаю gameobject. Есть корутин по которому я определяю, когда нам приходит ответ, в коде ошибка на строчке с запуском корутина, видно, что я не могу вернуть result, так как он внутри анонимной функции, а не основной. Причём тут понятно, что основная функция отработает быстрее корутина, так что я даже присвоить переменную не смогу из вне. Подскажите, что в данном случае можно сделать? Очень бы хотелось сохранить именно такой вид возвращения игрового объекта.
public static GameObject Instantiate(GameObject gameObject, Vector3 position, Quaternion rotation, string name = "", bool mine = false)
{
ClientSend.Instantiate(gameObject, position, rotation, name, mine);
ThreadManager.instance.StartCoroutine(WaitGameObject((result) => { return result; }));
}
public static IEnumerator WaitGameObject(System.Action<GameObject> result)
{
while(currentSpawnedObject == null)
{
yield return new WaitForEndOfFrame();
}
result(currentSpawnedObject);
yield return currentSpawnedObject;
}