Ejemplo n.º 1
0
 /// <summary>
 /// 异步加载场景
 /// </summary>
 public void LoadSceneAsync(EventLoadSceneArgs loadSceneCfg)
 {
     if (loadSceneCor != null)
     {
         StopCoroutine(loadSceneCor);
     }
     loadSceneCor = StartCoroutine(LoadScene(loadSceneCfg));
 }
Ejemplo n.º 2
0
    public void LoadScene(EventArgs args)
    {
        EventLoadSceneArgs loadArgs = args as EventLoadSceneArgs;

        if (loadArgs != null)
        {
            MonoHelper.GetInstance().LoadSceneAsync(loadArgs);
        }
        else
        {
            Debug.LogError("参数错误");
        }
    }
Ejemplo n.º 3
0
    /// <summary>
    /// 进入场景
    /// </summary>
    void OnEnterScene(byte[] p)
    {
        ProtoInt proto = ObjectPool.protoPool.GetOrCreate <ProtoInt>(ProtoPool.ProtoRecycleType.Int);

        if (proto.Parse(p))
        {
            EventLoadSceneArgs loadSceneCfg = new EventLoadSceneArgs();
            loadSceneCfg.index    = proto.context;
            loadSceneCfg.progress = null;
            loadSceneCfg.complete = SendEnterScene;
            MonoHelper.GetInstance().LoadSceneAsync(loadSceneCfg);
            proto.Recycle();
        }
    }
Ejemplo n.º 4
0
    IEnumerator LoadScene(EventLoadSceneArgs loadSceneCfg)
    {
        loadSceneArgs = loadSceneCfg;
        loadSceneAsy  = SceneManager.LoadSceneAsync(loadSceneArgs.index);
        yield return(loadSceneAsy);

        if (loadSceneArgs != null && loadSceneArgs.complete != null)
        {
            loadSceneArgs.complete(loadSceneCfg.index);
        }
        yield return(null);

        loadSceneArgs = null;
        loadSceneAsy  = null;
        loadSceneCor  = null;
    }