facebook twitter hatena line email

「Unity/Csharp/画面遷移/非同期」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
行14: 行14:
 
     {
 
     {
 
         AsyncOperation asyncLoad = SceneManager.LoadSceneAsync(sceneName);
 
         AsyncOperation asyncLoad = SceneManager.LoadSceneAsync(sceneName);
        Debug.Log("asyncLoad.progress=" + asyncLoad.progress);
 
 
         asyncLoad.allowSceneActivation = false;
 
         asyncLoad.allowSceneActivation = false;
 
         // asyncLoad.progressが0.9でisDoneがfalse // if (asyncLoad.progress >= 0.9f)
 
         // asyncLoad.progressが0.9でisDoneがfalse // if (asyncLoad.progress >= 0.9f)

2022年6月30日 (木) 06:50時点における版

public class SampleAsyncScene : MonoBehaviour
{
    [SerializeField] Button button;
    void Start()
    {
        button.onClick.AddListener(OnClickButton);
    }
    void OnClickButton()
    {
        StartCoroutine(LoadSceneAsync("SubScene"));
    }
    IEnumerator LoadSceneAsync(string sceneName)
    {
        AsyncOperation asyncLoad = SceneManager.LoadSceneAsync(sceneName);
        asyncLoad.allowSceneActivation = false;
        // asyncLoad.progressが0.9でisDoneがfalse // if (asyncLoad.progress >= 0.9f)
        while (!asyncLoad.isDone)
        {
            Debug.Log("asyncLoad.progress=" + asyncLoad.progress);
            asyncLoad.allowSceneActivation = true;
            yield return null;
        }
    }
}

参考

https://nosystemnolife.com/unity_loading/