Esempio n. 1
0
    private ResourcesTask GetNextTask()
    {
        if (m_tasks.Count == 0)
        {
            return(null);
        }
        ResourcesTask task = m_tasks.Dequeue();
        Object        obj  = null;

        //是否包含
        if (m_datas.TryGetValue(task.path, out obj) && obj != null)
        {
            task.asset = obj;
            if (task.onBegin != null)
            {
                task.onBegin(task.path);
            }
            if (task.onProgress != null)
            {
                task.onProgress(task.path, 1);
            }
            if (task.onComplete != null)
            {
                task.onComplete(task.path, obj);
            }
            //递归下一个
            task = GetNextTask();
        }
        return(task);
    }
Esempio n. 2
0
    public void OnUpdate(float deltaTime, float unscaledDeltaTime)
    {
        if (m_agents.Length > 0)
        {
            for (int i = 0; i < m_agents.Length; i++)
            {
                if (m_agents[i].m_state == ResourcesAgent.State.Begin || m_agents[i].m_state == ResourcesAgent.State.Loading)
                {
                    m_agents[i].OnUpdate(deltaTime, unscaledDeltaTime);
                }
                if (m_agents[i].m_state == ResourcesAgent.State.Complete)
                {
                    //记录相关数据
                    ResourcesTask task = m_agents[i].CurrentTask();
                    if (task != null)
                    {
                        m_datas[task.path] = task.asset;
                    }
                    //重置状态
                    m_agents[i].RemoveTask();
                }
            }
        }


        if (m_tasks.Count > 0 && m_agents.Length > 0)
        {
            for (int i = 0; i < m_agents.Length; i++)
            {
                if (m_agents[i].m_state == ResourcesAgent.State.Wait)
                {
                    ResourcesTask task = GetNextTask();
                    if (task != null)
                    {
                        m_agents[i].AddTask(task);
                    }
                }
            }
        }
    }