У меня странная проблема, которую я не совсем понимаю.В основном у меня есть 3 класса: A, B и C. Класс A и C привязаны к GameObject, класс B нет.
Класс A:
public class A : MonoBehaviour
{
public void Foo()
{
string text = "some text here";
StartCoroutine(B.Bar(text));
}
}
Класс B:
public class B : MonoBehaviour
{
public IEnumerator Bar(string text)
{
// do some stuff
yield return Something(text);
}
public IEnumerator Something(string text)
{
// do some stuff
yield return C.FooBar(new List<string>(text.Split(someChar)));
// wait for C.FooBar and do some more stuff
}
}
Класс C:
public class C : MonoBehaviour
{
public IEnumerator FooBar(List<string> names)
{
while (names.Length > 0)
{
// do some stuff
yield return new WaitForEndOfFrame();
names.RemovaAt(0);
}
}
}
Проблема в том, что B.Something (текст строки) останавливается при каждом возврате доходности (в этой функции есть некоторые другие возвраты доходности, где я должен ждатьдля чего-то).Но все это сработало вчера после множества испытаний, и я не знаю, что я делаю неправильно и почему это вдруг не работает.
У вас есть какие-нибудь идеи?
Спасибо!