Вам нужно изменить тип возвращаемого значения Start()
, обратный вызов Start
поддерживает оба типа void
и IEnumerator
в качестве типов возврата.
IEnumerator Start ()
{
string dataUrl = "http://www.my-site.com/game/test.php";
string playName = "Player 1";
int score = -1;
// Create a form object for sending high score data to the server
var form = new WWWForm();
// Assuming the perl script manages high scores for different games
form.AddField( "game", "MyGameName" );
// The name of the player submitting the scores
form.AddField( "playerName", playName );
// The score
form.AddField( "score", score );
// Create a download object
WWW downloadW = new WWW( dataUrl, form );
// Wait until the download is done
yield return downloadW;
if(downloadW.error == null) {
print( "Error downloading: " + downloadW.error );
return false;
} else {
// show the highscores
Debug.Log(downloadW.text);
}
}
Если тип возвращаемого значения IEnumerator
, вы можете использовать ключевое слово yield
.
Большинство обратных вызовов позволяют вернуть IEnumerator
, некоторые из которых не могут быть: Пробуждение, Обновление, LateUpdate, FixedUpdate, OnGUI, OnEnable, OnDisable, OnDestroy. Вам нужно будет проверить документацию обратного вызова события, чтобы узнать, не поддерживает ли он сопрограмму.