Exemplo n.º 1
0
    void OnAysncResObjCallBack(string path, ResourceObject resObj, object param1, object param2, object param3)
    {
        if (string.IsNullOrEmpty(path))
        {
            return;
        }
        if (resObj.m_ResItem.m_Obj == null)
        {
#if UNIYT_EDITOR
            Debug.LogError("异步加载资源为空:" + path);
#endif
        }
        else
        {
            resObj.m_GameObj     = GameObject.Instantiate(resObj.m_ResItem.m_Obj) as GameObject;
            resObj.m_OfflineData = resObj.m_GameObj.GetComponent <OfflineData>();
        }
        //完成物体异步加载,移除正在加载列表
        if (m_AsyncResObjectDict.ContainsKey(resObj.m_GameObj.GetInstanceID()))
        {
            m_AsyncResObjectDict.Remove(resObj.m_GameObj.GetInstanceID());
        }
        if (resObj.m_GameObj != null && resObj.m_IsSceneParent)
        {
            resObj.m_GameObj.transform.SetParent(m_SceneParentNode, false);
        }
        if (resObj.m_FinishCallBack != null)
        {
            int GUID = resObj.m_GameObj.GetInstanceID();
            if (!m_ResObjectDict.ContainsKey(GUID))
            {
                m_ResObjectDict.Add(GUID, resObj);
            }
            resObj.m_FinishCallBack(path, resObj.m_GameObj, resObj.m_Param1, resObj.m_Param2, resObj.m_Param3);
        }
    }