예제 #1
0
    public void LoadSceneAsync(string sceneName, AsyncSceneCallBack data = null,
                               LoadSceneMode mode = LoadSceneMode.Single)
    {
        if (_asyncRecordDic.ContainsKey(sceneName))
        {
            Debuger.LogError($"repeat load scene  {sceneName}");
        }
        else
        {
            _asyncRecordDic.Add(sceneName, data);
        }

        var async = SceneManager.LoadSceneAsync(sceneName, mode);

        async.completed += operation =>
        {
            if (_asyncRecordDic.ContainsKey(sceneName))
            {
                var recordData = _asyncRecordDic[sceneName];
                recordData.Progress = 0.9f;
            }

            _removeSceneList.Add(sceneName);
        };
        MonoHelper.GlobalStartCoroutine(LoadSceneAsync(sceneName, async));
    }