SceneManager.LoadSceneAsync中是否使用coroutine有什么区别?

问题描述 投票:0回答:1

官样SceneManager.LoadSceneAsync 在冠词中

但我直接调用它也很好用。

为什么官方的例子是在coroutine中调用?有什么区别?

unity3d
1个回答
1
投票

当你把它放在coroutine中时,你能够很容易地检查AsyncOperation状态。SceneManager.LoadSceneAsync无论如何都会加载场景,但是如果你想检查场景是否完全加载或者加载了多少百分比(这是你调用LoadSceneAsync的主要原因),你需要检查AsyncOperation状态。

你可以在Update方法中检查它,但使用一个coroutine更有意义,这样你只在加载场景时检查它。你不需要也不希望在Update中每一帧都检查场景是否已经加载,而只是在场景加载的开始时检查。


0
投票

除了遵循封装的良好做法外,没有特别的原因。

我的猜测是Unity-Engineer自己在一个coroutine中使用了加载,只是把那个片段用于文档。我想他知道很多人都会从这个片段开始,然后从那里开始。导致现在很多人都有封装的场景加载。我喜欢他对这个的关心。

© www.soinside.com 2019 - 2024. All rights reserved.