コード例 #1
0
ファイル: UIManager.cs プロジェクト: ole27/Unity_Client
    private void UILoadCallBack(string resName, GameObject obj, LoadderData data)
    {
        if (obj == null)
        {
            if (GMManager.IsInEditor)
            {
                Debug.LogError("UI " + resName + "不存在!");
            }
            return;
        }

        try
        {
            obj.transform.SetParent(uiRootRectTransform, false);
            var loadData = (UILoadderData)data;
            var config   = mUIPanelConfigDic[loadData.id];          // loadData.config;
            var type     = Type.GetType(config.scriptName);
            var panel    = Activator.CreateInstance(type) as PanelBase;
            var cpn      = obj.GetComponent <PanelData>();
            panel.SetPanelData(cpn);
            panel.OpenPanel(loadData.parentPanel, loadData.id, loadData.forParentType, loadData.waitAni);
            runPanelBaseList.Add(panel);
        }
        catch (Exception e)
        {
            if (GMManager.IsInEditor)
            {
                Debug.LogError(e);
            }
        }
    }
コード例 #2
0
    private IEnumerator IeLoadAsset(string resName, LoadderCallBack callBack, LoadderData data)
    {
        var boudleName = data == null ? resName : string.IsNullOrEmpty(data.assetBoudleName) ? resName : data.assetBoudleName;

        if (_objDic.ContainsKey(boudleName))
        {
            var resNames = resName.Split('/');
            if (callBack != null)
            {
                callBack(resName, _objDic[boudleName].LoadAsset(resNames[resNames.Length - 1]), data);
            }
            yield break;
        }

        resManagerState = ResManagerState.EAsyncLoadRes;
        if (_wwwList.Contains(boudleName))
        {
            yield return(new WaitWhile(() => _wwwList.Contains(boudleName)));

            if (_objDic.ContainsKey(boudleName))
            {
                var resNames = resName.Split('/');
                if (callBack != null)
                {
                    callBack(resName, _objDic[boudleName].LoadAsset(resNames[resNames.Length - 1]), data);
                }
                resManagerState = ResManagerState.EFree;
                yield break;
            }
        }

        _wwwList.Add(boudleName);

        yield return(LoadAllDependencies(boudleName));

        var objwww = WWW.LoadFromCacheOrDownload(string.Format("file://{0}{1}.unity3d", ResManager.LocalAssetbundlePath, boudleName), _manifest.GetAssetBundleHash(string.Format("{0}.unity3d", boudleName)), 0);

        yield return(objwww);

        if (!string.IsNullOrEmpty(objwww.error))
        {
            Debug.Log(objwww.error);
            if (callBack != null)
            {
                callBack(resName, null, data);
            }
        }
        else
        {
            _objDic.Add(boudleName, objwww.assetBundle);
            var resNames = resName.Split('/');
            var obj      = objwww.assetBundle.LoadAsset(resNames[resNames.Length - 1]);
            if (callBack != null)
            {
                callBack(resName, obj, data);
            }
        }
        _wwwList.Remove(boudleName);
        resManagerState = ResManagerState.EFree;
    }
コード例 #3
0
    public void LoadResources(string resName, LoadderData data)
    {
        curSceneName = resName;
        isLoadEnd    = false;
        var resPath = string.Format("prefabs/scenes/{0}", resName);

        OnLoadCallBack(resPath, null, data);
    }
コード例 #4
0
    public void LoadAsset(string resName, LoadderData data)
    {
        curSceneName = resName;
        isLoadEnd    = false;
        var resPath = string.Format("prefabs/scenes/{0}", resName);

        ResManager.Instance.LoadAsset(resPath, OnLoadCallBack, data);
    }
コード例 #5
0
 private void LoadCallBack5(string resname, GameObject obj, LoadderData data)
 {
     if (obj == null)
     {
         Debug.Log("is null!!!!!!!");
         return;
     }
     obj.transform.position = new Vector3(-5.14f, 3.23f, 9.07f);
 }
コード例 #6
0
    public void LoadResources(string resName, LoadderCallBack callBack, LoadderData data)
    {
        if (string.IsNullOrEmpty(resName))
        {
            callBack(null, null, data);
            return;
        }

        object obj = Resources.Load(resName);

        callBack(resName, obj, data);
    }
コード例 #7
0
    private void LoadCallBack2(string resname, GameObject obj, LoadderData data)
    {
        if (obj == null)
        {
            Debug.Log("is null!!!!!!!");
            return;
        }

        //Debug.Log(data == null ? "data is null" : "data is not null");
        gobjs[1] = obj;
        gobjs[1].transform.position = new Vector3(-2.757f, 1.91f, 7.728f);
    }
コード例 #8
0
    private void LoadCallBack1(string resname, GameObject obj, LoadderData data)
    {
        if (obj == null)
        {
            Debug.Log("is null!!!!!!!");
            return;
        }

        //Debug.Log(data == null ? "data is null" : "data is not null");
        gobjs[0] = obj;
        gobjs[0].transform.position = new Vector3(-5.14f, 2.23f, 9.07f);
    }
コード例 #9
0
ファイル: UIManager.cs プロジェクト: ole27/Unity_Client
    private void UIRootLoadCallBack(string resName, GameObject obj, LoadderData data)
    {
        if (obj == null)
        {
            if (GMManager.IsInEditor)
            {
                Debug.LogError(resName + "is null!");
            }
            isInitEnd = true;
            return;
        }

        GameObject.DontDestroyOnLoad(obj);

        uiRootRectTransform = obj.transform as RectTransform;
        isInitEnd           = true;
    }
コード例 #10
0
    public void LoadAsset(string resName, LoadderCallBack callBack, LoadderData data)
    {
        if (string.IsNullOrEmpty(resName))
        {
            callBack(null, null, data);
            return;
        }

        if (UseAssetBoudle)
        {
            Game.Instance.StartCoroutine(IeLoadAsset(resName, callBack, data));
        }
        else
        {
            object obj = Resources.Load(resName);
            callBack(resName, obj, data);
        }
    }
コード例 #11
0
    private void OnLoadCallBack(string resname, object obj, LoadderData data)
    {
        if (prefab == null)
        {
            if (obj == null)
            {
                return;
            }
            prefab = (GameObject)obj;
        }
        var j = spawnCount;

        for (var i = 0; i < j; i++)
        {
            var o = GameObject.Instantiate(prefab);
            o.transform.parent = parentRoot;
            var cpn = o.AddComponent <PoolItem>();
            cpn.Init(resname);
            poolItemList.Add(cpn);
        }
        isInitEnd = true;
    }
コード例 #12
0
    public void LoadAsset(string resName, LoadderCallBack <GameObject> LoadCallBack, LoadderData data)
    {
        if (LoadCallBack == null)
        {
            return;
        }

        if (string.IsNullOrEmpty(resName))
        {
            LoadCallBack(null, null, data);
        }

        var resPath = string.Format("prefabs/ui/{0}", resName);

        if (ResPoolManager.Instance.HasSpawn(resPath))
        {
            ResPoolManager.Instance.LoadAsset(resPath, LoadCallBack, data);
        }
        else
        {
            var loadData = new UIResLoadderData(LoadCallBack, data);
            ResManager.Instance.LoadAsset(resPath, OnLoadCallBack, loadData);
        }
    }
コード例 #13
0
    private void OnLoadCallBack(string resname, object obj, LoadderData data)
    {
        var loadData = (UIResLoadderData)data;

        loadData.Invoke(resname, obj);
    }
コード例 #14
0
 public UIResLoadderData(LoadderCallBack <GameObject> loadCallBack, LoadderData data)
 {
     LoadCallBack = loadCallBack;
     this.data    = data;
 }
コード例 #15
0
 public void LoadAsset(string resName, LoadderCallBack <GameObject> LoadCallBack, LoadderData data)
 {
     LoadCallBack(resName, SpawnPoolDic[resName].GetSpwan(), data);
 }
コード例 #16
0
 private void OnLoadCallBack(string resname, object obj, LoadderData data)
 {
     Game.Instance.StartCoroutine(LoadSceneAsync(curSceneName));
 }