Итак, есть изначально такая фигня.
Синтаксис:
Используется csharp
void Start()
{
StartCoroutine(Test());
}
IEnumerator Test()
{
for (var i = 0; i < 10; i++)
{
//null чтобы лишь бы что вернуть
yield return null;
}
}
{
StartCoroutine(Test());
}
IEnumerator Test()
{
for (var i = 0; i < 10; i++)
{
//null чтобы лишь бы что вернуть
yield return null;
}
}
Она успешно компилируется и работает.
Дальше. В обстоятельствах разработки мне понадобилось закомментировать этот цикл. Сделал так.
Синтаксис:
Используется csharp
void Start()
{
StartCoroutine(Test());
}
IEnumerator Test()
{
for (var i = 0; i < 10 && false; i++)
{
yield return null;
}
yield break; //эффект одинаков что с, что без этой строчки; возможно она просто отсекается компилятором
}
{
StartCoroutine(Test());
}
IEnumerator Test()
{
for (var i = 0; i < 10 && false; i++)
{
yield return null;
}
yield break; //эффект одинаков что с, что без этой строчки; возможно она просто отсекается компилятором
}
Студия (работаю через нее) успешно это скомпилировала.
Зато unity пишет "All Compiler Error have to be fixed" и выдает первый попавшийся warning в проекте как ошибку.
В моем случае это был "Unreachable code detected" другого скрипта. После исправления этого warning-а юнити кидает следующий warning (но не все warning-и сразу).
То есть из-за строчки кода юнити компилирует твой скрипт, но начинает обращаться с warning-ами проекта как с ошибками.
Использую Unity 5.3 VisualStudio 2015.