В чем разница между использованием сопрограммы или нет в SceneManager.LoadSceneAsyn c? - PullRequest
1 голос
/ 23 апреля 2020

Официальный пример положить SceneManager.LoadSceneAsync в сопрограмму

Но он также хорошо работает, когда я вызываю его напрямую.

Почему официальный пример вызывает его в сопрограммная? В чем разница?

Ответы [ 2 ]

1 голос
/ 23 апреля 2020

Когда вы помещаете его в сопрограмму, вы можете легко проверить состояние AsyncOperation. SceneManager.LoadSceneAsyn c загрузит сцену в любом случае, но если вы хотите проверить, загружена ли сцена полностью или в каком проценте (и это основная причина, по которой вы вызываете LoadSceneAsyn c), вам нужно проверить состояние AsyncOperation.

Вы можете проверить это в методе Update, но имеет смысл использовать сопрограмму, поэтому вы проверяете ее только при загрузке сцены. Вам не нужно или не нужно проверять, загружена ли сцена в Обновлении каждого кадра, но только в начале, когда сцена загружается.

0 голосов
/ 23 апреля 2020

Нет особой причины, кроме следования хорошей практике инкапсуляции.

Я предполагаю, что сам инженер Unity использовал загрузку в сопрограмме и просто использовал этот фрагмент для документации. Я думаю, он знал, что многие люди начнут с фрагмента и go оттуда. В результате появилось много людей, которые теперь инкапсулировали загрузку сцены. Мне нравится, что он позаботился об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...